home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_gnome-python.idb / usr / freeware / lib / python1.5 / site-packages / gtk.py.z / gtk.py
Encoding:
Python Source  |  1999-07-16  |  95.3 KB  |  2,623 lines

  1. #
  2. # gtk.py: Wrapper for the gtk module.  This one gives an object oriented
  3. #         feel for the library.  Just type "from gtk import *"
  4. #
  5. # Author: James Henstridge <james@daa.com.au>
  6. #
  7. # TODO
  8. # 1. document some of this (maybe all of it)
  9.  
  10. # The _obj argument in each constructor is used to create a gtk object
  11. # that coresponds to an already created GTK Object.  It should be possible
  12. # to call any of the gtk object constructors something like this:
  13. # GtkContainer(_obj=gtk_obj) where gtk_obj is an already created GtkObject.
  14. #
  15. # To make the use of this system easier, you can use the _obj2inst function
  16. # to create a gtk object of the correct type from a GtkObject.  This
  17. # is the function the new() command uses.
  18.  
  19. from GTK import *
  20. import GDK    # make the GDK constants available
  21. import _gtk
  22. import sys, os
  23.  
  24. # this sets up i18n input stuff
  25. _gtk.gtk_set_locale()
  26.  
  27. # initialise GTK (only if it can find the display -- this avoids segfaults)
  28. if '--display' in sys.argv or os.environ.has_key('DISPLAY'):
  29.     _gtk.gtk_init()
  30. else:
  31.     print 'No display information -- gtk_init not called'
  32. del sys, os
  33.  
  34. class GtkObject:
  35.     get_type = _gtk.gtk_object_get_type
  36.     def __init__(self, _obj=None):
  37.         if _obj: self._o = _obj; return
  38.     def set(self, dict):
  39.         _filtprops(dict)
  40.         _gtk.gtk_object_set(self._o, dict)
  41.     def __getitem__(self, key):
  42.         ret = _gtk.gtk_object_get(self._o, key)
  43.         if type(ret) == _gtk.GtkObjectType:
  44.             return _obj2inst(ret)
  45.         else:
  46.             return ret
  47.     def __setitem__(self, key, v):
  48.         if hasattr(v, '_o') and type(v._o) == _gtk.GtkObjectType:
  49.             v = v._o
  50.         _gtk.gtk_object_set(self._o, {key: v});
  51.     def __cmp__(self, other):
  52.             if hasattr(other, '_o'):
  53.             return cmp(self._o, other._o)
  54.         else:
  55.             return cmp(id(self), id(other))
  56.     def __getattr__(self, attr):
  57.         # this function allows setting attributes on an object so that
  58.         # they will always be available with the object.  Due to
  59.         # reference counting problems, we can't always pass the
  60.         # same GtkObject instance to a callback.
  61.         #if attr[0] == '_' or not self.__dict__.has_key('_o'):
  62.         #    raise AttributeError, attr
  63.         #dict = self.get_data('Python-Attributes')
  64.         #if dict and dict.has_key(attr):
  65.         #    return dict[attr]
  66.         raise AttributeError, attr
  67.     #def __setattr__(self, attr, value):
  68.     #    if attr[0] == '_' or self.__dict__.has_key(attr) or \
  69.     #       not self.__dict__.has_key('_o'):
  70.     #        self.__dict__[attr] = value
  71.     #    dict = self.get_data('Python-Attributes')
  72.     #    if not dict:
  73.     #        dict = {}
  74.     #        self.set_data('Python-Attributes', dict)
  75.     #    dict[attr] = value
  76.     #def __delattr__(self, attr):
  77.     #    if self.__dict__.has_key(attr):
  78.     #        del self.__dict__[attr]
  79.     #        return
  80.     #    if not self.__dict__.has_key('_o'):
  81.     #        raise AttributeError, \
  82.     #              'delete non-existing instance attribute'
  83.     #    dict = self.get_data('Python-Attributes')
  84.     #    if dict and dict.has_key(attr):
  85.     #        del dict[attr]
  86.     #    else:
  87.     #        raise AttributeError, \
  88.     #              'delete non-existing instance attribute'
  89.             
  90.     def flags(self, mask=None):
  91.         if mask:
  92.             return _gtk.GTK_OBJECT_FLAGS(self._o) & mask
  93.         else:
  94.             return _gtk.GTK_OBJECT_FLAGS(self._o)
  95.     def set_flags(self, flags):
  96.         _gtk.GTK_OBJECT_SET_FLAGS(self._o, flags)
  97.     def unset_flags(self, flags):
  98.         _gtk.GTK_OBJECT_UNSET_FLAGS(self._o, flags)
  99.     def set_data(self, key, value):
  100.         _gtk.gtk_object_set_data(self._o, key, value)
  101.     def get_data(self, key):
  102.         return _gtk.gtk_object_get_data(self._o, key)
  103.     def remove_data(self, key):
  104.         _gtk.gtk_object_remove_data(self._o, key)
  105.     class __cnv:
  106.         def __init__(self, func):
  107.             self.func = func
  108.         def __call__(self, *args):
  109.             a = list(args)
  110.             for i in range(len(args)):
  111.                 if type(args[i]) == _gtk.GtkObjectType:
  112.                     a[i] = _obj2inst(args[i])
  113.             a = tuple(a)
  114.             ret = apply(self.func, a)
  115.             if hasattr(ret, '_o'): ret = ret._o
  116.             return ret
  117.     def connect(self, name, f, *extra):
  118.         callback = self.__cnv(f)
  119.         return _gtk.gtk_signal_connect(self._o, name,
  120.                            callback.__call__, extra)
  121.     signal_connect = connect
  122.     def connect_after(self, name, f, *extra):
  123.         callback = self.__cnv(f)
  124.         return _gtk.gtk_signal_connect_after(self._o, name,
  125.                              callback.__call__, extra)
  126.     signal_connect_after = connect_after
  127.     def disconnect(self, id):
  128.         _gtk.gtk_signal_disconnect(self._o, id)
  129.     def signal_handler_block(self, id):
  130.         _gtk.gtk_signal_handler_block(self._o, id)
  131.     def signal_handler_unblock(self, id):
  132.         _gtk.gtk_signal_handler_unblock(self._o, id)
  133.     def signal_handlers_destroy(self):
  134.         _gtk.gtk_signal_handlers_destroy(self._o)
  135.     def emit(self, signal, *args):
  136.         params = []
  137.         for i in args:
  138.             if hasattr(i, '_o'): params.append(i._o)
  139.             elif hasattr(i, '_ag'): params.append(i._ag)
  140.             else: params.append(i)
  141.         return _gtk.gtk_signal_emitv_by_name(self._o,signal,params)
  142.     def emit_stop_by_name(self, sig):
  143.         _gtk.gtk_signal_emit_stop_by_name(self._o, sig)
  144.     def destroy(self, _obj=None):
  145.         _gtk.gtk_object_destroy(self._o)
  146.  
  147. class GtkData(GtkObject):
  148.     get_type = _gtk.gtk_data_get_type
  149.     def __init__(self, _obj=None):
  150.         if _obj: self._o = _obj; return
  151.  
  152. class GtkAdjustment(GtkData):
  153.     get_type = _gtk.gtk_adjustment_get_type
  154.     def __init__(self, value=0, lower=0, upper=0, step_incr=0, page_incr=0,
  155.             page_size=0, _obj=None):
  156.         if _obj: self._o = _obj; return
  157.         self._o = _gtk.gtk_adjustment_new(value, lower, upper,
  158.                       step_incr, page_incr, page_size)
  159.     def __getattr__(self, attr):
  160.         attrs = {
  161.         'lower': _gtk.gtk_adjustment_get_lower,
  162.         'upper': _gtk.gtk_adjustment_get_upper,
  163.         'value': _gtk.gtk_adjustment_get_value,
  164.         'step_increment': _gtk.gtk_adjustment_get_step_increment,
  165.         'page_increment': _gtk.gtk_adjustment_get_page_increment,
  166.         'page_size': _gtk.gtk_adjustment_get_page_size
  167.         }
  168.         if attr in attrs.keys():
  169.             return attrs[attr](self._o)
  170.         return GtkData.__getattr__(self, attr)
  171.     def set_value(self, value):
  172.         _gtk.gtk_adjustment_set_value(self._o, value)
  173.     def clamp_page(self, lower, upper):
  174.         _gtk.gtk_adjustment_clamp_page(self._o, lower, upper)
  175.     def changed(self, obj=None):
  176.         _gtk.gtk_adjustment_changed(self._o)
  177.     def value_changed(self, obj=None):
  178.         _gtk.gtk_adjustment_value_changed(self._o)
  179.  
  180. class GtkTooltips(GtkData):
  181.     get_type = _gtk.gtk_tooltips_get_type
  182.     def __init__(self, _obj=None):
  183.         if _obj: self._o = _obj; return
  184.         self._o = _gtk.gtk_tooltips_new()
  185.     def enable(self):
  186.         _gtk.gtk_tooltips_enable(self._o)
  187.     def disable(self, obj=None):
  188.         _gtk.gtk_tooltips_disable(self._o)
  189.     def set_delay(self, delay):
  190.         _gtk.gtk_tooltips_set_delay(self._o, delay)
  191.     def set_tip(self, w, tip, tip_private=None):
  192.         _gtk.gtk_tooltips_set_tip(self._o, w._o, tip, tip_private)
  193.     def set_tips(self, w, tip):
  194.         print "GtkTooltip.set_tips deprecated -- use set_tip instead"
  195.         self.set_tip(w, tip, tip)
  196.     def set_colors(self, back, fore):
  197.         _gtk.gtk_tooltips_set_colors(self._o, back, fore)
  198.     def force_window(self):
  199.         _gtk.gtk_tooltips_force_window(self._o)
  200.  
  201. class GtkItemFactory(GtkObject):
  202.     get_type = _gtk.gtk_item_factory_get_type
  203.     def __init__(self, type=-1, path='', accel_group=None, _obj=None):
  204.         if _obj: self._o = _obj; return
  205.         if type == -1: type = _gtk.gtk_menu_bar_get_type()
  206.         if hasattr(type, 'get_type'): type = type.get_type()
  207.         self._o = _gtk.gtk_item_factory_new(type,path,accel_group._ag)
  208.     parse_rc = _gtk.gtk_item_factory_parse_rc
  209.     parse_rc_string = _gtk.gtk_item_factory_parse_rc_string
  210.     def get_widget(self, path):
  211.         ret = _gtk.gtk_item_factory_get_widget(self._o, path)
  212.         if ret:
  213.             return _obj2inst(ret)
  214.         else:
  215.             return ret
  216.     def get_widget_by_action(self, action):
  217.         ret = _gtk.gtk_item_factory_get_widget_by_action(self._o,
  218.                                  action)
  219.         if ret:
  220.             return _obj2inst(ret)
  221.         else:
  222.             return ret
  223.     class __wrap_cb:
  224.         def __init__(self, cb):
  225.             self.cb = cb
  226.         def __call__(self, action, widget):
  227.             self.cb(action, _obj2inst(widget))
  228.     def create_items(self, items):
  229.         def map_func((path,accel,cb,action,type), wrap=self.__wrap_cb):
  230.             if cb:
  231.                 return (path,accel,wrap(cb).__call__,action,
  232.                     type)
  233.             else:
  234.                 return (path,accel,None,action,type)
  235.         items = map(map_func, items)
  236.         _gtk.gtk_item_factory_create_items(self._o, items)
  237.     def delete_item(self, path):
  238.         _gtk.gtk_item_factory_delete_item(self._o, path)
  239.     def popup(self, x, y, button, time):
  240.         _gtk.gtk_item_factory_popup(self._o, x, y, button, time)
  241.     def add_foreign(self, accel_widget, full_path, accel_group, keyval,
  242.             modifiers):
  243.         _gtk.gtk_item_factory_add_foreign(accel_widget._o, full_path,
  244.                           accel_group._ag, keyval,
  245.                           modifiers)
  246.  
  247. class GtkWidget(GtkObject):
  248.     get_type = _gtk.gtk_widget_get_type
  249.     def __init__(self, _obj=None):
  250.         if _obj: self._o = _obj; return
  251.     # extra parameter is so that these funcs can be used as signal funcs
  252.     def accelerators_locked(self):
  253.         return _gtk.gtk_widget_accelerators_locked(self._o)
  254.     def activate(self, obj=None):
  255.         return _gtk.gtk_widget_activate(self._o)
  256.     def add_accelerator(self, signal, group, key, mods, flags):
  257.         _gtk.gtk_widget_add_accelerator(self._o, signal, group._ag,
  258.                         key, mods, flags)
  259.     def destroy(self, obj=None):
  260.         _gtk.gtk_widget_destroy(self._o)
  261.     def drag_get_data(self, context, target, time):
  262.         _gtk.gtk_drag_get_data(self._o, context, target, time)
  263.     def drag_finish(self, context, success, delete, time):
  264.         _gtk.gtk_drag_finish(context, success, delete, time)
  265.     def drag_highlight(self):
  266.         _gtk.gtk_drag_highlight(self._o)
  267.     def drag_unhighlight(self):
  268.         _gtk.gtk_drag_unhighlight(self._o)
  269.     # targets is a list of 3-tuples of form
  270.     # (string target, int flags ,int info)
  271.     def drag_dest_set(self, flags, targets, actions):
  272.         _gtk.gtk_drag_dest_set(self._o, flags, targets, actions)
  273.     def drag_dest_set_proxy(self, proxy_window, protocol, use_coordinates):
  274.         _gtk.gtk_drag_dest_set_proxy(self._o, proxy_window, protocol,
  275.                          use_coordinates)
  276.     def drag_dest_unset(self):
  277.         _gtk.gtk_drag_dest_unset(self._o)
  278.     # targets as for drag_dest_set
  279.     def drag_source_set(self, button_mask, targets, actions):
  280.         _gtk.gtk_drag_source_set(self._o, button_mask, targets,actions)
  281.     def drag_source_set_icon(self, colormap, pixmap, mask):
  282.         _gtk.gtk_drag_source_set_icon(self._o, colormap, pixmap, mask)
  283.     # targets as for drag_dest_set
  284.     def drag_begin(self, targets, actions, button, event):
  285.         return _gtk.gtk_drag_begine(self._o, targets, actions, button,
  286.                         event)
  287.     def drag_set_icon_widget(self, context, widget, hot_x, hot_y):
  288.         _gtk.gtk_drag_set_icon_widget(context, widget._o, hot_x, hot_y)
  289.     def drag_set_icon_pixmap(self, context, colormap, pixmap, mask,
  290.                  hot_x, hot_y):
  291.         _gtk.gtk_drag_set_icon_pixmap(context, colormap, pixmap, mask,
  292.                           hot_x, hot_y)
  293.     def drag_set_icon_default(self, context):
  294.         _gtk.gtk_drag_set_icon_default(context)
  295.     def drag_set_default_icon(self, colormap, pixmap, mask, hot_x, hot_y):
  296.         _gtk.gtk_drag_set_default_icon(colormap, pixmap, mask,
  297.                            hot_x, hot_y)
  298.     def drag_get_source_widget(self, context):
  299.         return _obj2inst(_gtk.gtk_drag_get_source_widget(context))
  300.     def drag_status(self, context, action, time):
  301.         _gtk.gdk_drag_status(context, action, time)
  302.     def draw(self, rect):
  303.         _gtk.gtk_widget_draw(self._o, rect)
  304.     def draw_default(self, obj=None):
  305.         _gtk.gtk_widget_draw_default(self._o)
  306.     def draw_focus(self, obj=None):
  307.         _gtk.gtk_widget_draw_focus(self._o)
  308.     def ensure_style(self):
  309.         _gtk.gtk_widget_ensure_style(self._o)
  310.     def event(self, event):
  311.         _gtk.gtk_widget_event(self._o, event)
  312.     def lock_accelerators(self):
  313.         _gtk.gtk_widget_lock_accelerators(self._o)
  314.     def get_allocation(self):
  315.         return _gtk.gtk_widget_get_allocation(self._o)
  316.     def get_ancestor(self, type):
  317.         return _obj2inst(_gtk.gtk_widget_get_ancestor(self._o, type))
  318.     def get_child_requisition(self):
  319.         return _gtk.gtk_widget_get_child_requisition(self._o)
  320.     def get_colormap(self):
  321.         return _gtk.gtk_widget_get_colormap(self._o)
  322.     def get_composite_name(self):
  323.         return _gtk.gtk_widget_get_composite_name(self._o)
  324.     def get_events(self):
  325.         return _gtk.gtk_widget_get_events(self._o)
  326.     def get_extension_events(self):
  327.         return _gtk.gtk_widget_get_extension_events(self._o)
  328.     def get_name(self):
  329.         return _gtk.gtk_widget_get_name(self._o)
  330.     def get_parent_window(self):
  331.         return _gtk.gtk_widget_get_parent_window(self._o)
  332.     def get_pointer(self):
  333.         return _gtk.gtk_widget_get_pointer(self._o)
  334.     def get_style(self):
  335.         return _gtk.gtk_widget_get_style(self._o)
  336.     def get_toplevel(self):
  337.         return _obj2inst(_gtk.gtk_widget_get_toplevel(self._o))
  338.     def get_window(self):
  339.         return _gtk.gtk_widget_get_window(self._o)
  340.     def grab_focus(self, obj=None):
  341.         _gtk.gtk_widget_grab_focus(self._o)
  342.     def grab_default(self, obj=None):
  343.         _gtk.gtk_widget_grab_default(self._o)
  344.     def hide(self, obj=None):
  345.         _gtk.gtk_widget_hide(self._o)
  346.     def hide_all(self, obj=None):
  347.         _gtk.gtk_widget_hide_all(self._o)
  348.     def hide_on_delete(self, obj=None):
  349.         return _gtk.gtk_widget_hide_on_delete(self._o)
  350.     def intersect(self, rect):
  351.         return _gtk.gtk_widget_intersect(self._o, rect)
  352.     def is_ancestor(self, a):
  353.         return _gtk.gtk_widget_is_ancestor(self._o, a._o)
  354.     def map(self, obj=None):
  355.         _gtk.gtk_widget_map(self._o)
  356.     def popup(self, x, y):
  357.         _gtk.gtk_widget_popup(self._o, x, y)
  358.     def queue_draw(self, obj=None):
  359.         _gtk.gtk_widget_queue_draw(self._o)
  360.     def queue_resize(self, obj=None):
  361.         _gtk.gtk_widget_queue_resize(self._o)
  362.     def realize(self, obj=None):
  363.         _gtk.gtk_widget_realize(self._o)
  364.     def remove_accelerator(self, group, key, mods):
  365.         _gtk.gtk_widget_remove_accelerator(self._o, group._ag,
  366.                            key, mods)
  367.     def remove_accelerators(self, signal, visible_only):
  368.         _gtk.gtk_widget_remove_accelerators(self._o, signal,
  369.                             visible_only)
  370.     def reparent(self, new_parent):
  371.         _gtk.gtk_widget_reparent(self._o, new_parent._o)
  372.     def reset_rc_styles(self):
  373.         _gtk.gtk_widget_reset_rc_styles(self._o)
  374.     def restore_default_style(self):
  375.         _gtk.gtk_widget_restore_default_style(self._o)
  376.     def selection_owner_set(self, selection, time):
  377.         return _gtk.gtk_selection_owner_set(self._o, selection, time)
  378.     def selection_add_target(self, selection, target, info):
  379.         _gtk.gtk_selection_add_target(self._o, selection, target, info)
  380.     def selection_convert(self, selection, target, time):
  381.         return _gtk.gtk_selection_convert(self._o, selection,
  382.                           target, time)
  383.     def selection_remove_all(self):
  384.         _gtk.gtk_selection_remove_all(self._o)
  385.     def set_events(self, events):
  386.         _gtk.gtk_widget_set_events(self._o, events)
  387.     def add_events(self, events):
  388.         _gtk.gtk_widget_add_events(self._o, events)
  389.     def set_app_paintable(self, app_paintable):
  390.         _gtk.gtk_widget_set_app_paintable(self._o, app_paintable)
  391.     def set_composite_name(self, name):
  392.         _gtk.gtk_widget_set_composite_name(self._o, name)
  393.     def set_extension_events(self, exevents):
  394.         _gtk.gtk_widget_set_extension_events(self._o, exevents)
  395.     def set_name(self, name):
  396.         _gtk.gtk_widget_set_name(self._o, name)
  397.     def set_parent(self, parent):
  398.         _gtk.gtk_widget_set_parent(self._o, parent._o)
  399.     def set_parent_window(self, parent):
  400.         _gtk.gtk_widget_set_parent_window(self._o, parent)
  401.     def set_scroll_adjustments(self, hadj, vadj):
  402.         _gtk.gtk_widget_set_scroll_adjustments(self._o,hadj._o,vadj._o)
  403.     def set_sensitive(self, s):
  404.         _gtk.gtk_widget_set_sensitive(self._o, s)
  405.     def set_state(self, s):
  406.         _gtk.gtk_widget_set_state(self._o, s)
  407.     def set_style(self, style):
  408.         _gtk.gtk_widget_set_style(self._o, style)
  409.     def set_rc_style(self):
  410.         _gtk.gtk_widget_set_rc_style(self._o)
  411.     def set_uposition(self, x, y):
  412.         _gtk.gtk_widget_set_uposition(self._o, x, y)
  413.     def set_usize(self, w, h):
  414.         _gtk.gtk_widget_set_usize(self._o, w, h)
  415.     def shape_combine_mask(self, mask, ofs_x, ofs_y):
  416.         if hasattr(mask, '_o'):
  417.             tmp, mask = mask.get()
  418.             _gtk.gtk_widget_shape_combine_mask(self._o, mask, ofs_x, ofs_y)
  419.     def show(self, obj=None):
  420.         _gtk.gtk_widget_show(self._o)
  421.     def show_all(self, obj=None):
  422.         _gtk.gtk_widget_show_all(self._o)
  423.     def show_now(self, obj=None):
  424.             _gtk.gtk_widget_show_now(self._o)
  425.     def size_allocate(self, a):
  426.         _gtk.gtk_widget_size_allocate(self._o, a)
  427.     def size_request(self):
  428.         return _gtk.gtk_widget_size_request(self._o)
  429.     def unlock_accelerators(self):
  430.         _gtk.gtk_widget_unlock_accelerators(self._o)
  431.     def unmap(self, obj=None):
  432.         _gtk.gtk_widget_unmap(self._o)
  433.     def unparent(self):
  434.         _gtk.gtk_widget_unparent(self._o)
  435.     def unrealize(self, obj=None):
  436.         _gtk.gtk_widget_unrealize(self._o)
  437.  
  438. class GtkCalendar(GtkWidget):
  439.     get_type = _gtk.gtk_calendar_get_type
  440.     def __init__(self, _obj=None):
  441.         if _obj: self._o = _obj; return
  442.         self._o = _gtk.gtk_calendar_new()
  443.     def select_month(self, month, year):
  444.         return _gtk.gtk_calendar_select_month(self._o, month, year)
  445.     def select_day(self, day):
  446.         _gtk.gtk_calendar_select_day(self._o, day)
  447.     def mark_day(self, day):
  448.         return _gtk.gtk_calendar_mark_day(self._o, day)
  449.     def unmark_day(self, day):
  450.         return _gtk.gtk_calendar_unmark_day(self._o, day)
  451.     def clear_marks(self):
  452.         _gtk.gtk_calendar_clear_marks(self._o)
  453.     def display_options(self, flags):
  454.         _gtk.gtk_calendar_display_options(self._o, flags)
  455.     def get_date(self):
  456.         return _gtk.gtk_calendar_get_date(self._o)
  457.     def freeze(self):
  458.         _gtk.gtk_calendar_freeze(self._o)
  459.     def thaw(self):
  460.         _gtk.gtk_calendar_thaw(self._o)
  461.     
  462. class GtkContainer(GtkWidget):
  463.     get_type = _gtk.gtk_container_get_type
  464.     def __init__(self, _obj=None):
  465.         if _obj: self._o = _obj; return
  466.     def add(self, child, **args):
  467.         if args == {}:
  468.             _gtk.gtk_container_add(self._o, child._o)
  469.         else:
  470.             _gtk.gtk_container_add(self._o, child._o, args)
  471.     def border_width(self, bw):
  472.         print "border_width deprecated -- use set_border_width"
  473.         self.set_border_width(bw)
  474.     def set_border_width(self, bw):
  475.         _gtk.gtk_container_set_border_width(self._o, bw)
  476.     def check_resize(self):
  477.         _gtk.gtk_container_check_resize(self._o)
  478.     def child_composite_name(self, child):
  479.         return _gtk.gtk_container_child_composite_name(self._o,
  480.                                    child._o)
  481.     def child_set(self, child, **args):
  482.         _gtk.gtk_container_child_set(self._o, child._o, args)
  483.     def child_get(self, child, arg):
  484.         return _gtk.gtk_container_child_get(self._o, child._o, arg)
  485.     def children(self):
  486.         l =  _gtk.gtk_container_children(self._o)
  487.         return map(_obj2inst, l)
  488.     def child_type(self):
  489.         return _gtk.gtk_container_child_type(self._o)
  490.     def focus(self, d):
  491.         _gtk.gtk_container_focus(self._o, d)
  492.     def foreach(self, f):
  493.         for child in self.children():
  494.             f(child)
  495.     def register_toplevel(self):
  496.         _gtk.gtk_container_register_toplevel(self._o)
  497.     def remove(self, child):
  498.         _gtk.gtk_container_remove(self._o, child._o)
  499.     def resize_children(self):
  500.         _gtk.gtk_container_resize_children(self._o)
  501.     def set_focus_child(self, child):
  502.         if child: child = child._o
  503.         _gtk.gtk_container_set_focus_child(self._o, child)
  504.     def set_focus_vadjustment(self, adj):
  505.         _gtk.gtk_container_set_focus_vadjustment(self._o, adj._o)
  506.     def set_focus_hadjustment(self, adj):
  507.         _gtk.gtk_container_set_focus_hadjustment(self._o, adj._o)
  508.     def set_resize_mode(self, mode):
  509.         _gtk.gtk_container_set_resize_mode(self._o, mode)
  510.     def unregister_toplevel(self):
  511.         _gtk.gtk_container_unregister_toplevel(self._o)
  512.  
  513. class GtkBin(GtkContainer):
  514.     get_type = _gtk.gtk_bin_get_type
  515.     def __init__(self, _obj=None):
  516.         if _obj: self._o = _obj; return
  517.  
  518. class GtkAlignment(GtkBin):
  519.     get_type = _gtk.gtk_alignment_get_type
  520.     def __init__(self, xa=0, ya=0, xs=0, ys=0, _obj=None):
  521.         if _obj: self._o = _obj; return
  522.         self._o = _gtk.gtk_alignment_new(xa, ya, xs, ys)
  523.     def set(self, xa, ya, xs, ys):
  524.         _gtk.gtk_alignment_set(self._o, xa, ya, xs, ys)
  525.  
  526. class GtkButton(GtkBin):
  527.     get_type = _gtk.gtk_button_get_type
  528.     def __init__(self, label=None, _obj=None):
  529.         if _obj: self._o = _obj; return
  530.         if label == None:
  531.             self._o = _gtk.gtk_button_new()
  532.         else:
  533.             self._o = _gtk.gtk_button_new_with_label(label)
  534.     def pressed(self, obj=None):
  535.         _gtk.gtk_button_pressed(self._o)
  536.     def released(self, obj=None):
  537.         _gtk.gtk_button_released(self._o)
  538.     def clicked(self, obj=None):
  539.         _gtk.gtk_button_clicked(self._o)
  540.     def enter(self, obj=None):
  541.         _gtk.gtk_button_enter(self._o)
  542.     def leave(self, obj=None):
  543.         _gtk.gtk_button_leave(self._o)
  544.     def set_relief(self, style):
  545.         _gtk.gtk_button_set_relief(self._o, style)
  546.     def get_relief(self):
  547.         return _gtk.gtk_button_get_relief(self._o)
  548.  
  549. class GtkOptionMenu(GtkButton):
  550.     get_type = _gtk.gtk_option_menu_get_type
  551.     def __init__(self, _obj=None):
  552.         if _obj: self._o = _obj; return
  553.         self._o = _gtk.gtk_option_menu_new()
  554.     def get_menu(self):
  555.         return _obj2inst(_gtk.gtk_option_menu_get_menu(self._o))
  556.     def set_menu(self, menu):
  557.         _gtk.gtk_option_menu_set_menu(self._o, menu._o)
  558.     def remove_menu(self):
  559.         _gtk.gtk_option_menu_remove_menu(self._o)
  560.     def set_history(self, index):
  561.         _gtk.gtk_option_menu_set_history(self._o, index)
  562.  
  563. class GtkToggleButton(GtkButton):
  564.     get_type = _gtk.gtk_toggle_button_get_type
  565.     def __init__(self, label=None, _obj=None):
  566.         if _obj: self._o = _obj; return
  567.         if label == None:
  568.             self._o = _gtk.gtk_toggle_button_new()
  569.         else:
  570.             self._o = _gtk.gtk_toggle_button_new_with_label(label)
  571.     def __getattr__(self, attr):
  572.         attrs = {
  573.             'active': _gtk.gtk_toggle_button_get_active,
  574.             'draw_indicator':_gtk.gtk_toggle_button_get_draw_indicator,
  575.         }
  576.         if attrs.has_key(attr):
  577.             return attrs[attr](self._o)
  578.         return GtkButton.__getattr__(self, attr)
  579.     def set_mode(self, di):
  580.         _gtk.gtk_toggle_button_set_mode(self._o, di)
  581.     def set_active(self, active):
  582.         _gtk.gtk_toggle_button_set_active(self._o, active)
  583.     def get_active(self):
  584.         return _gtk.gtk_toggle_button_get_active(self._o)
  585.     def toggled(self, obj):
  586.         _gtk.gtk_toggle_button_toggled(self._o)
  587.  
  588. class GtkCheckButton(GtkToggleButton):
  589.     get_type = _gtk.gtk_check_button_get_type
  590.     def __init__(self, label=None, _obj=None):
  591.         if _obj: self._o = _obj; return
  592.         if label == None:
  593.             self._o = _gtk.gtk_check_button_new()
  594.         else:
  595.             self._o = _gtk.gtk_check_button_new_with_label(label)
  596.  
  597. class GtkRadioButton(GtkCheckButton):
  598.     get_type = _gtk.gtk_radio_button_get_type
  599.     def __init__(self, group=None, label=None, _obj=None):
  600.         if _obj: self._o = _obj; return
  601.         if label == None:
  602.             if group == None:
  603.                 self._o = _gtk.gtk_radio_button_new()
  604.             else:
  605.                 self._o = \
  606.                     _gtk.gtk_radio_button_new_from_widget(
  607.                         group._o)
  608.         else:
  609.             if group == None:
  610.                 self._o = _gtk.gtk_radio_button_new_with_label(
  611.                     None, label)
  612.             else:
  613.                 self._o = _gtk.gtk_radio_button_new_with_label_from_widget(group._o, label)
  614.  
  615. class GtkFrame(GtkBin):
  616.     get_type = _gtk.gtk_frame_get_type
  617.     def __init__(self, label=None, _obj=None):
  618.         if _obj: self._o = _obj; return
  619.         self._o = _gtk.gtk_frame_new(label)
  620.     def set_label(self, label):
  621.         _gtk.gtk_frame_set_label(self._o, label)
  622.     def set_label_align(self, x, y):
  623.         _gtk.gtk_frame_set_label_align(self._o, x, y)
  624.     def set_shadow_type(self, tp=SHADOW_ETCHED_IN):
  625.         _gtk.gtk_frame_set_shadow_type(self._o, tp)
  626.  
  627. class GtkAspectFrame(GtkFrame):
  628.     get_type = _gtk.gtk_aspect_frame_get_type
  629.     def __init__(self, xa=0, ya=0, ratio=1, obey_child=1, _obj=None):
  630.         if _obj: self._o = _obj; return
  631.         self._o = _gtk.gtk_aspect_frame_new(xa, ya, ratio, obey_child)
  632.     def set(self, xa, ya, ratio, obey_child):
  633.         _gtk.gtk_aspect_frame_set(self._o, xa, ya, ratio, obey_child)
  634.  
  635. class GtkEventBox(GtkBin):
  636.     get_type = _gtk.gtk_event_box_get_type
  637.     def __init__(self, _obj=None):
  638.         if _obj: self._o = _obj; return
  639.         self._o = _gtk.gtk_event_box_new()
  640.  
  641. class GtkHandleBox(GtkBin):
  642.     get_type = _gtk.gtk_handle_box_get_type
  643.     def __init__(self, _obj=None):
  644.         if _obj: self._o = _obj; return
  645.         self._o = _gtk.gtk_handle_box_new()
  646.     def set_shadow_type(self, type):
  647.         _gtk.gtk_handle_box_set_shadow_type(self._o, type)
  648.     def set_handle_position(self, position):
  649.         _gtk.gtk_handle_box_set_handle_position(self._o, position)
  650.     def set_snap_edge(self, edge):
  651.         _gtk.gtk_handle_box_set_snap_edge(self._o, edge)
  652.  
  653. class GtkItem(GtkBin):
  654.     get_type = _gtk.gtk_item_get_type
  655.     def __init__(self, _obj=None):
  656.         if _obj: self._o = _obj; return
  657.     def select(self, obj=None):
  658.         _gtk.gtk_item_select(self._o)
  659.     def deselect(self, obj=None):
  660.         _gtk.gtk_item_deselect(self._o)
  661.     def toggle(self, obj=None):
  662.         _gtk.gtk_item_toggle(self._o)
  663.  
  664. class GtkMenuItem(GtkItem):
  665.     get_type = _gtk.gtk_menu_item_get_type
  666.     def __init__(self, label=None, _obj=None):
  667.         if _obj: self._o = _obj; return
  668.         if label == None:
  669.             self._o = _gtk.gtk_menu_item_new()
  670.         else:
  671.             self._o = _gtk.gtk_menu_item_new_with_label(label)
  672.     def set_submenu(self, sub):
  673.         _gtk.gtk_menu_item_set_submenu(self._o, sub._o)
  674.     def set_placement(self, placement):
  675.         _gtk.gtk_menu_item_set_placement(self._o, placement)
  676.     def configure(self, show_toggle, show_sub):
  677.         _gtk.gtk_menu_item_configure(self._o, show_toggle, show_sub)
  678.     def select(self, obj=None):
  679.         _gtk.gtk_menu_item_select(self._o)
  680.     def deselect(self, obj=None):
  681.         _gtk.gtk_menu_item_deselect(self._o)
  682.     def activate(self, obj=None):
  683.         _gtk.gtk_menu_item_activate(self._o)
  684.     def remove_submenu(self):
  685.         _gtk.gtk_menu_item_remove_submenu(self._o)
  686.     def right_justify(self, obj=None):
  687.         _gtk.gtk_menu_item_right_justify(self._o)
  688.         
  689. class GtkCheckMenuItem(GtkMenuItem):
  690.     get_type = _gtk.gtk_check_menu_item_get_type
  691.     def __init__(self, label=None, _obj=None):
  692.         if _obj: self._o = _obj; return
  693.         if label == None:
  694.             self._o = _gtk.gtk_check_menu_item_new()
  695.         else:
  696.             self._o =_gtk.gtk_check_menu_item_new_with_label(label)
  697.     def __getattr__(self, attr):
  698.         attrs = {
  699.             'active': _gtk.gtk_check_menu_item_get_active
  700.         }
  701.         if attrs.has_key(attr):
  702.             return attrs[attr](self._o)
  703.         return GtkMenuItem.__getattr__(self, attr)
  704.     def set_show_toggle(self, always):
  705.         _gtk.gtk_check_menu_item_set_show_toggle(self._o, always)
  706.     def set_active(self, active):
  707.         _gtk.gtk_check_menu_item_set_active(self._o, active)
  708.     def toggled(self, obj=None):
  709.         _gtk.gtk_check_menu_item_toggled(self._o)
  710.  
  711. class GtkRadioMenuItem(GtkCheckMenuItem):
  712.     get_type = _gtk.gtk_radio_menu_item_get_type
  713.     def __init__(self, group=None, label=None, _obj=None):
  714.         if _obj: self._o = _obj; return
  715.         if label == None:
  716.             if group == None:
  717.                 self._o = _gtk.gtk_radio_menu_item_new()
  718.             else:
  719.                 self._o =_gtk.gtk_radio_menu_item_new(group._o)
  720.         else:
  721.             if group == None:
  722.                 self._o=_gtk.gtk_radio_menu_item_new_with_label(
  723.                     None, label)
  724.             else:
  725.                 self._o=_gtk.gtk_radio_menu_item_new_with_label(
  726.                     group._o, label)
  727.  
  728. class GtkTearoffMenuItem(GtkMenuItem):
  729.     get_type = _gtk.gtk_tearoff_menu_item_get_type
  730.     def __init__(self, _obj=None):
  731.         if _obj: self._o = _obj; return
  732.         self._o = _gtk.gtk_tearoff_menu_item_new()
  733.  
  734. class GtkListItem(GtkItem):
  735.     get_type = _gtk.gtk_list_item_get_type
  736.     def __init__(self, label=None, _obj=None):
  737.         if _obj: self._o = _obj; return
  738.         if label == None:
  739.             self._o = _gtk.gtk_list_item_new()
  740.         else:
  741.             self._o = _gtk.gtk_list_item_new_with_label(label)
  742.     def select(self, obj=None):
  743.         _gtk.gtk_list_item_select(self._o)
  744.     def deselect(self, obj=None):
  745.         _gtk.gtk_list_item_deselect(self._o)
  746.  
  747. class GtkTreeItem(GtkItem):
  748.     get_type = _gtk.gtk_tree_item_get_type
  749.     def __init__(self, label=None, _obj=None):
  750.         if _obj: self._o = _obj; return
  751.         if label == None:
  752.             self._o = _gtk.gtk_tree_item_new()
  753.         else:
  754.             self._o = _gtk.gtk_tree_item_new_with_label(label)
  755.     def set_subtree(self, subtree):
  756.         _gtk.gtk_tree_item_set_subtree(self._o, subtree._o)
  757.     def select(self, obj=None):
  758.         _gtk.gtk_tree_item_select(self._o)
  759.     def deselect(self, obj=None):
  760.         _gtk.gtk_tree_item_deselect(self._o)
  761.     def expand(self, obj=None):
  762.         _gtk.gtk_tree_item_expand(self._o)
  763.     def collapse(self, obj=None):
  764.         _gtk.gtk_tree_item_collapse(self._o)
  765.     def remove_subtree(self):
  766.         _gtk.gtk_tree_item_remove_subtree(self._o)
  767.  
  768. class GtkViewport(GtkBin):
  769.     get_type = _gtk.gtk_viewport_get_type
  770.     def __init__(self, ha=None, va=None, _obj=None):
  771.         if _obj: self._o = _obj; return
  772.         if ha: ha = ha._o
  773.         if va: va = va._o
  774.         self._o = _gtk.gtk_viewport_new(ha, va)
  775.     def get_hadjustment(self):
  776.         return _obj2inst(_gtk.gtk_viewport_get_hadjustment(self._o))
  777.     def get_vdjustment(self):
  778.         return _obj2inst(_gtk.gtk_viewport_get_vadjustment(self._o))
  779.     def set_hadjustment(self, ha):
  780.         _gtk.gtk_viewport_set_hadjustment(self._o, ha._o)
  781.     def set_vadjustment(self, va):
  782.         _gtk.gtk_viewport_set_vadjustment(self._o, va._o)
  783.     def set_shadow_type(self, tp=SHADOW_ETCHED_IN):
  784.         _gtk.gtk_viewport_set_shadow_type(self._o, tp)
  785.  
  786. class GtkWindow(GtkBin):
  787.     get_type = _gtk.gtk_window_get_type
  788.     def __init__(self, type=WINDOW_TOPLEVEL, title=None, _obj=None):
  789.         if _obj: self._o = _obj; return
  790.         self._o = _gtk.gtk_window_new(type)
  791.         if title is not None:
  792.             self.set_title(title)
  793.     def activate_focus(self, obj=None):
  794.         _gtk.gtk_window_activate_focus(self._o)
  795.     def activate_default(self, obj=None):
  796.         _gtk.gtk_window_activate_default(self._o)
  797.     def set_title(self, title):
  798.         _gtk.gtk_window_set_title(self._o, title)
  799.     def set_policy(self, as, ag, autos):
  800.         _gtk.gtk_window_set_policy(self._o, as, ag, autos)
  801.     def add_accel_group(self, group):
  802.         _gtk.gtk_window_add_accel_group(self._o, group._ag)
  803.     def remove_accel_group(self, group):
  804.         _gtk.gtk_window_remove_accel_group(self._o, group._ag)
  805.     def position(self, pos):
  806.         print "position deprecated -- use set_position"
  807.         self.set_position(pos)
  808.     def set_position(self, pos):
  809.         _gtk.gtk_window_set_position(self._o, pos)
  810.     def set_wmclass(self, wmc_name, wmc_class):
  811.         _gtk.gtk_window_set_wmclass(self._o, wmc_name, wmc_class)
  812.     def set_icon(self, pixmap, mask=None):
  813.         if not mask and hasattr(pixmap, '_o'):
  814.             pixmap, mask = pixmap.get()
  815.         _gtk.gtk_window_set_icon(self._o, pixmap, mask)
  816.     def set_icon_name(self, name):
  817.         _gtk.gtk_window_set_icon_name(self._o, name)
  818.     def set_transient_for(self, parent):
  819.         _gtk.gtk_window_set_transient_for(self._o, parent._o)
  820.     def set_geometry_hints(self, geometry_widget=None, **hints):
  821.         # acceptable hints are min_width, min_height, max_width,
  822.         # max_height, base_width, base_height, width_inc, height_inc
  823.         # (with int values) and min_aspect, max_aspect (double values).
  824.         if hasattr(geometry_widget, '_o'):
  825.             geometry_widget = geometry_widget._o
  826.         _gtk.gtk_window_set_geometry_hints(self._o, geometry_widget,
  827.                            hints)
  828.     def set_default_size(self, width, height):
  829.         _gtk.gtk_window_set_default_size(self._o, width, height)
  830.     def set_modal(self, modal):
  831.         _gtk.gtk_window_set_modal(self._o, modal)
  832.  
  833. class GtkColorSelectionDialog(GtkWindow):
  834.     get_type = _gtk.gtk_color_selection_dialog_get_type
  835.     def __init__(self, name="", _obj=None):
  836.         if _obj: self._o = _obj; return
  837.         self._o = _gtk.gtk_color_selection_dialog_new(name)
  838.     def __getattr__(self, attr):
  839.         attrs = {
  840.             'colorsel':_gtk.gtk_color_selection_dialog_get_colorsel,
  841.             'main_vbox':_gtk.gtk_color_selection_dialog_get_main_vbox,
  842.             'ok_button': _gtk.gtk_color_selection_dialog_get_ok_button,
  843.             'reset_button': _gtk.gtk_color_selection_dialog_get_reset_button,
  844.             'cancel_button': _gtk.gtk_color_selection_dialog_get_cancel_button,
  845.             'help_button': _gtk.gtk_color_selection_dialog_get_help_button
  846.         }
  847.         if attrs.has_key(attr):
  848.             return _obj2inst(attrs[attr](self._o))
  849.         return GtkWindow.__getattr__(self, attr)
  850.  
  851. class GtkDialog(GtkWindow):
  852.     get_type = _gtk.gtk_dialog_get_type
  853.     def __init__(self, _obj=None):
  854.         if _obj: self._o = _obj; return
  855.         self._o = _gtk.gtk_dialog_new()
  856.     def __getattr__(self, attr):
  857.         attrs = {
  858.             'vbox': _gtk.gtk_dialog_get_vbox,
  859.             'action_area': _gtk.gtk_dialog_get_action_area
  860.         }
  861.         if attrs.has_key(attr):
  862.             return _obj2inst(attrs[attr](self._o))
  863.         return GtkWindow.__getattr__(self, attr)
  864.  
  865. class GtkFileSelection(GtkWindow):
  866.     get_type = _gtk.gtk_file_selection_get_type
  867.     def __init__(self, title='', _obj=None):
  868.         if _obj: self._o = _obj; return
  869.         self._o = _gtk.gtk_file_selection_new(title)
  870.  
  871.     def __getattr__(self, attr):
  872.         attrs = {
  873.         'cancel_button':   _gtk.gtk_file_selection_get_cancel_button,
  874.         'dir_list':        _gtk.gtk_file_selection_get_dir_list,
  875.         'file_list':       _gtk.gtk_file_selection_get_file_list,
  876.         'help_button':     _gtk.gtk_file_selection_get_help_button,
  877.         'main_vbox':       _gtk.gtk_file_selection_get_main_vbox,
  878.         'ok_button':       _gtk.gtk_file_selection_get_ok_button,
  879.         'selection_entry': _gtk.gtk_file_selection_get_selection_entry,
  880.         'selection_text':  _gtk.gtk_file_selection_get_selection_text
  881.         }
  882.         if attrs.has_key(attr):
  883.             return _obj2inst(attrs[attr](self._o))
  884.         return GtkWindow.__getattr__(self, attr)
  885.     def set_filename(self, filename):
  886.         _gtk.gtk_file_selection_set_filename(self._o, filename)
  887.     def get_filename(self):
  888.         return _gtk.gtk_file_selection_get_filename(self._o)
  889.     def complete(self, pattern):
  890.         _gtk.gtk_file_selection_complete(self._o, pattern)
  891.     def show_fileop_buttons(self):
  892.         _gtk.gtk_file_selection_show_fileop_buttons(self._o)
  893.     def hide_fileop_buttons(self):
  894.         _gtk.gtk_file_selection_hide_fileop_buttons(self._o)
  895.  
  896. class GtkInputDialog(GtkWindow):
  897.     get_type = _gtk.gtk_input_dialog_get_type
  898.     def __init__(self, _obj=None):
  899.         if _obj: self._o = _obj; return
  900.         self._o = _gtk.gtk_input_dialog_new()
  901.     def __getattr__(self, attr):
  902.         attrs = {
  903.             'close_button': _gtk.gtk_input_dialog_get_close_button,
  904.             'save_button': _gtk.gtk_input_dialog_get_save_button
  905.         }
  906.         if attrs.has_key(attr):
  907.             return _obj2inst(attrs[attr](self._o))
  908.         return GtkWindow.__getattr__(self, attr)
  909.  
  910. class GtkFontSelectionDialog(GtkWindow):
  911.     get_type = _gtk.gtk_font_selection_dialog_get_type
  912.     def __init__(self, title=None, _obj=None):
  913.         if _obj: self._o = _obj; return
  914.         self._o = _gtk.gtk_font_selection_dialog_new(title)
  915.     def __getattr__(self, attr):
  916.         attrs = {
  917.         "fontsel": _gtk.gtk_font_selection_dialog_get_fontsel,
  918.         "main_vbox": _gtk.gtk_font_selection_dialog_get_main_vbox,
  919.         "action_area": _gtk.gtk_font_selection_dialog_get_action_area,
  920.         "ok_button": _gtk.gtk_font_selection_dialog_get_ok_button,
  921.         "apply_button":_gtk.gtk_font_selection_dialog_get_apply_button,
  922.         "cancel_button":
  923.                 _gtk.gtk_font_selection_dialog_get_cancel_button
  924.         }
  925.         if attrs.has_key(attr):
  926.             return _obj2inst(attrs[attr](self._o))
  927.         return GtkWindow.__getattr__(self, attr)
  928.     def get_font_name(self):
  929.         return _gtk.gtk_font_selection_dialog_get_font_name(self._o)
  930.     def get_font(self):
  931.         return _gtk.gtk_font_selection_dialog_get_font(self._o)
  932.     def set_font_name(self, name):
  933.         return _gtk.gtk_font_selection_dialog_set_font_name(self._o,
  934.                                     name)
  935.     def get_preview_text(self):
  936.         return _gtk.gtk_font_selection_dialog_get_preview_text(self._o)
  937.     def set_preview_text(self, text):
  938.         _gtk.gtk_font_selection_dialog_set_preview_text(self._o, text)
  939.  
  940. class GtkPlug(GtkWindow):
  941.     get_type = _gtk.gtk_plug_get_type
  942.     def __init__(self, socket_id=-1, _obj=None):
  943.         if _obj: self._o = _obj; return
  944.         self._o = _gtk.gtk_plug_new(socket_id)
  945.  
  946. class GtkBox(GtkContainer):
  947.     get_type = _gtk.gtk_box_get_type
  948.     def __init__(self, _obj=None):
  949.         if nonint: return
  950.     def pack_start(self, child, expand=TRUE, fill=TRUE, padding=0):
  951.         _gtk.gtk_box_pack_start(self._o, child._o, expand,fill,padding)
  952.     def pack_end(self, child, expand=TRUE, fill=TRUE, padding=0):
  953.         _gtk.gtk_box_pack_end(self._o, child._o, expand,fill,padding)
  954.     def reorder_child(self, child, pos):
  955.         _gtk.gtk_box_reorder_child(self._o, child._o, pos)
  956.     def set_homogeneous(self, homogeneous):
  957.         _gtk.gtk_box_set_homogeneous(self._o, homogeneous)
  958.     def set_spacing(self, spacing):
  959.         _gtk.gtk_box_set_spacing(self._o, spacing)
  960.     def query_child_packing(self, child):
  961.         return _gtk.gtk_box_query_child_packing(self._o, child._o)
  962.     def set_child_packing(self, child, expand, fill, padding, pack_type):
  963.         _gtk.gtk_box_set_child_packing(self._o, child._o, expand, fill,
  964.                            padding, pack_type)
  965.     def reorder_child(self, child, pos):
  966.         _gtk.gtk_box_reorder_child(self._o, child._o, pos)
  967.  
  968. class GtkHBox(GtkBox):
  969.     get_type = _gtk.gtk_hbox_get_type
  970.     def __init__(self, homogeneous=0, spacing=0, _obj=None):
  971.         if _obj: self._o = _obj; return
  972.         self._o = _gtk.gtk_hbox_new(homogeneous, spacing)
  973.  
  974. class GtkCombo(GtkHBox):
  975.     get_type = _gtk.gtk_combo_get_type
  976.     def __init__(self, _obj=None):
  977.         if _obj: self._o = _obj; return
  978.         self._o = _gtk.gtk_combo_new()
  979.     def disable_activate(self, obj=None):
  980.         _gtk.gtk_combo_disable_activate(self._o)
  981.     def set_use_arrows(self, val):
  982.         _gtk.gtk_combo_set_use_arrows(self._o, val)
  983.     def set_use_arrows_always(self, val):
  984.         _gtk.gtk_combo_set_use_arrows_always(self._o, val)
  985.     def set_case_sensitive(self, val):
  986.         _gtk.gtk_combo_set_case_sensitive(self._o, val)
  987.     def set_item_string(self, item, val):
  988.         _gtk.gtk_combo_set_item_string(self._o, item._o, val)
  989.     def set_value_in_list(self, val, ok_if_empty):
  990.         _gtk.gtk_combo_set_value_in_list(self._o, val, ok_if_empty)
  991.     def set_popdown_strings(self, strings):
  992.         _gtk.gtk_combo_set_popdown_strings(self._o, strings)
  993.     def __getattr__(self, attr):
  994.         attrs = {
  995.             'entry': _gtk.gtk_combo_get_entry,
  996.             'list':  _gtk.gtk_combo_get_list
  997.             }
  998.         if attrs.has_key(attr):
  999.             return _obj2inst(attrs[attr](self._o))
  1000.         return GtkHBox.__getattr__(self, attr)
  1001.  
  1002. class GtkStatusbar(GtkHBox):
  1003.     get_type = _gtk.gtk_statusbar_get_type
  1004.     def __init__(self, _obj=None):
  1005.         if _obj: self._o = _obj; return
  1006.         self._o = _gtk.gtk_statusbar_new()
  1007.     def get_context_id(self, desc):
  1008.         return _gtk.gtk_statusbar_get_context_id(self._o, desc)
  1009.     def pop(self, cid):
  1010.         _gtk.gtk_statusbar_pop(self._o, cid)
  1011.     def push(self, cid, text):
  1012.         return _gtk.gtk_statusbar_push(self._o, cid, text)
  1013.     def remove(self, cid, msg_id):
  1014.         _gtk.gtk_statusbar_remove(self._o, cid, msg_id)
  1015.  
  1016. class GtkVBox(GtkBox):
  1017.     get_type = _gtk.gtk_vbox_get_type
  1018.     def __init__(self, homogeneous=0, spacing=0, _obj=None):
  1019.         if _obj: self._o = _obj; return
  1020.         self._o = _gtk.gtk_vbox_new(homogeneous, spacing)
  1021.  
  1022. class GtkColorSelection(GtkVBox):
  1023.     get_type = _gtk.gtk_color_selection_get_type
  1024.     def __init__(self, _obj=None):
  1025.         if _obj: self._o = _obj; return
  1026.         self._o = _gtk.gtk_color_selection_new()
  1027.     def set_update_policy(self, p):
  1028.         _gtk.gtk_color_selection_set_update_policy(self._o, p)
  1029.     def set_opacity(self, use_opacity):
  1030.         _gtk.gtk_color_selection_set_opacity(self._o, use_opacity)
  1031.     def set_color(self, c):
  1032.         _gtk.gtk_color_selection_set_color(self._o, c)
  1033.     def get_color(self):
  1034.         return _gtk.gtk_color_selection_get_color(self._o)
  1035.  
  1036. class GtkGammaCurve(GtkVBox):
  1037.     get_type = _gtk.gtk_gamma_curve_get_type
  1038.     def __init__(self, _obj=None):
  1039.         if _obj: self._o = _obj; return
  1040.         self._o = _gtk.gtk_gamma_curve_new()
  1041.     def __getattr__(self, attr):
  1042.         if attr == 'gamma':
  1043.             return _gtk.gtk_gamma_curve_get_gamma(self._o)
  1044.         attrs = {
  1045.             'curve': _gtk.gtk_gamma_curve_get_curve,
  1046.             'gamma_dialog': _gtk.gtk_gamma_curve_get_gamma_dialog,
  1047.             'gamma_text': _gtk.gtk_gamma_curve_get_gamma_text,
  1048.             'table': _gtk.gtk_gamma_curve_get_table,
  1049.         }
  1050.         if attrs.has_key(attr):
  1051.             return _obj2inst(attrs[attr](self._o))
  1052.         return GtkVBox.__getattr__(self, attr)
  1053.  
  1054. class GtkButtonBox(GtkBox):
  1055.     get_type = _gtk.gtk_button_box_get_type
  1056.     def __init__(self, _obj=None):
  1057.         if _obj: self._o = _obj; return
  1058.     def get_child_size_default(self):
  1059.         return _gtk.gtk_button_box_get_child_size_default()
  1060.     def get_child_ipadding_default(self):
  1061.         return _gtk.gtk_button_box_get_child_ipadding_default()
  1062.     def set_child_size_default(self, mw, mh):
  1063.         _gtk.gtk_button_box_set_child_size_default(mw, mh)
  1064.     def set_child_ipadding_default(self, ix, iy):
  1065.         _gtk.gtk_button_box_set_child_ipadding_default(ix, iy)
  1066.     def get_spacing(self):
  1067.         return _gtk.gtk_button_box_get_spacing(self._o)
  1068.     def get_layout(self):
  1069.         return _gtk.gtk_button_box_get_layout(self._o)
  1070.     def get_child_size(self):
  1071.         return _gtk.gtk_button_box_get_child_size(self._o)
  1072.     def get_child_ipadding(self):
  1073.         return _gtk.gtk_button_box_get_child_ipadding(self._o)
  1074.     def set_spacing(self, spacing):
  1075.         _gtk.gtk_button_box_set_spacing(self._o, spacing)
  1076.     def set_layout(self, layout):
  1077.         _gtk.gtk_button_box_set_layout(self._o, layout)
  1078.     def set_child_size(self, mw, mh):
  1079.         _gtk.gtk_button_box_set_child_size(self._o, mw, mh)
  1080.     def set_child_ipadding(self, ix, iy):
  1081.         _gtk.gtk_button_box_set_child_ipadding(self._o, ix, iy)
  1082.  
  1083. class GtkHButtonBox(GtkButtonBox):
  1084.     get_type = _gtk.gtk_hbutton_box_get_type
  1085.     def __init__(self, _obj=None):
  1086.         if _obj: self._o = _obj; return
  1087.         self._o = _gtk.gtk_hbutton_box_new()
  1088.     def get_spacing_default(self):
  1089.         return _gtk.gtk_hbutton_box_get_spacing_default()
  1090.     def get_layout_default(self):
  1091.         return _gtk.gtk_hbutton_box_get_layout_default()
  1092.     def set_spacing_default(self, spacing):
  1093.         _gtk.gtk_hbutton_box_set_spacing_default(spacing)
  1094.     def set_layout_default(self, layout):
  1095.         _gtk.gtk_hbutton_box_set_layout_default(layout)
  1096.  
  1097. class GtkVButtonBox(GtkButtonBox):
  1098.     get_type = _gtk.gtk_vbutton_box_get_type
  1099.     def __init__(self, _obj=None):
  1100.         if _obj: self._o = _obj; return
  1101.         self._o = _gtk.gtk_vbutton_box_new()
  1102.     def get_spacing_default(self):
  1103.         return _gtk.gtk_vbutton_box_get_spacing_default()
  1104.     def get_layout_default(self):
  1105.         return _gtk.gtk_vbutton_box_get_layout_default()
  1106.     def set_spacing_default(self, spacing):
  1107.         _gtk.gtk_vbutton_box_set_spacing_default(spacing)
  1108.     def set_layout_default(self, layout):
  1109.         _gtk.gtk_vbutton_box_set_layout_default(layout)
  1110.  
  1111. class GtkCList(GtkContainer):
  1112.     get_type = _gtk.gtk_clist_get_type
  1113.     def __init__(self, cols=1, titles=None, _obj=None):
  1114.         if _obj: self._o = _obj; return
  1115.         if titles == None:
  1116.             self._o = _gtk.gtk_clist_new(cols)
  1117.         else:
  1118.             self._o = _gtk.gtk_clist_new_with_titles(cols, titles)
  1119.     def __getattr__(self, attr):
  1120.         attrs = {
  1121.             'selection':_gtk.gtk_clist_get_selection,
  1122.             'focus_row':_gtk.gtk_clist_get_focus_row,
  1123.         }
  1124.         if attrs.has_key(attr):
  1125.             return attrs[attr](self._o)
  1126.         return GtkContainer.__getattr__(self, attr)
  1127.     def append(self, values):
  1128.         return _gtk.gtk_clist_append(self._o, values)
  1129.     def clear(self, obj=None):
  1130.         _gtk.gtk_clist_clear(self._o)
  1131.     def column_title_active(self, col):
  1132.         _gtk.gtk_clist_column_title_active(self._o, col)
  1133.     def column_title_passive(self, col):
  1134.         _gtk.gtk_clist_column_title_passive(self._o, col)
  1135.     def column_titles_active(self, obj=None):
  1136.         _gtk.gtk_clist_column_titles_active(self._o)
  1137.     def column_titles_hide(self, obj=None):
  1138.         _gtk.gtk_clist_column_titles_hide(self._o)
  1139.     def column_titles_passive(self, obj=None):
  1140.         _gtk.gtk_clist_column_titles_passive(self._o)
  1141.     def column_titles_show(self, obj=None):
  1142.         _gtk.gtk_clist_column_titles_show(self._o)
  1143.     def columns_autosize(self):
  1144.         return _gtk.gtk_clist_columns_autosize(self._o)
  1145.     def find_row_from_data(self, data):
  1146.         return _gtk.gtk_clist_find_row_from_data(self._o, data)
  1147.     def freeze(self, obj=None):
  1148.         _gtk.gtk_clist_freeze(self._o)
  1149.     def get_cell_style(self, row, col):
  1150.         return _gtk.gtk_clist_get_cell_style(self._o, row, col)
  1151.     def get_cell_type(self, r, c):
  1152.         return _gtk.gtk_clist_get_cell_type(self._o, r, c)
  1153.     def get_column_title(self, col):
  1154.         return _gtk.gtk_clist_get_column_title(self._o, col)
  1155.     def get_column_widget(self, col):
  1156.         return _obj2inst(_gtk.gtk_clist_get_column_widget(self._o,col))
  1157.     def get_row_data(self, row):
  1158.         return _gtk.gtk_clist_get_row_data(self._o, row)
  1159.     def get_row_style(self, row):
  1160.         return _gtk.gtk_clist_get_row_style(self._o, row)
  1161.     def get_text(self, r, c):
  1162.         return _gtk.gtk_clist_get_text(self._o, r, c)
  1163.     def get_pixmap(self, r, c):
  1164.         return _gtk.gtk_clist_get_pixmap(self._o, r, c)
  1165.     def get_pixtext(self, r, c):
  1166.         return _gtk.gtk_clist_get_pixtext(self._o, r, c)
  1167.     def get_selectable(self, row):
  1168.         return _gtk.gtk_clist_get_selectable(self._o, row)
  1169.     def get_selection_info(self, x, y):
  1170.         return _gtk.gtk_clist_get_selection_info(self._o, x, y)
  1171.     def insert(self, row, values):
  1172.         return _gtk.gtk_clist_insert(self._o, row, values)
  1173.     def moveto(self, row=-1, col=-1, row_align=0.5, col_align=0.5):
  1174.         _gtk.gtk_clist_moveto(self._o, row, col, row_align, col_align)
  1175.     def optimal_column_width(self, col):
  1176.         return _gtk.gtk_clist_optimal_column_width(self._o, col)
  1177.     def remove(self, row):
  1178.         _gtk.gtk_clist_remove(self._o, row)
  1179.     def row_is_visible(self, row):
  1180.         return _gtk.gtk_clist_row_is_visible(self._o, row)
  1181.     def row_move(self, soure_row, dest_row):
  1182.         _gtk.gtk_clist_row_move(self._o, source_row, dest_row)
  1183.     def select_all(self):
  1184.         _gtk.gtk_clist_select_all(self._o)
  1185.     def select_row(self, row, col):
  1186.         _gtk.gtk_clist_select_row(self._o, row, col)
  1187.     def set_auto_sort(self, auto_sort):
  1188.         _gtk.gtk_clist_set_auto_sort(self._o, auto_sort)
  1189.     def set_background(self, row, colour):
  1190.         _gtk.gtk_clist_set_background(self._o, row, colour)
  1191.     def set_cell_style(self, row, col, style):
  1192.         _gtk.gtk_clist_set_cell_style(self._o, row, col, style)
  1193.     def set_column_auto_resize(self, col, auto):
  1194.         _gtk.gtk_clist_set_column_auto_resize(self._o, col, auto)
  1195.     def set_column_justification(self, col, just):
  1196.         _gtk.gtk_clist_set_column_justification(self._o, col, just)
  1197.     def set_column_max_width(self, col, width):
  1198.         _gtk.gtk_clist_set_column_max_width(self._o, col, width)
  1199.     def set_column_min_width(self, col, width):
  1200.         _gtk.gtk_clist_set_column_min_width(self._o, col, width)
  1201.     def set_column_resizeable(self, col, resizeable):
  1202.         _gtk.gtk_clist_set_column_resizeable(self._o, col, resizeable)
  1203.     def set_column_title(self, col, title):
  1204.         _gtk.gtk_clist_set_column_title(self._o, col, title)
  1205.     def set_column_visibility(self, col, visible):
  1206.         _gtk.gtk_clist_set_column_visibility(self._o, col, visible)
  1207.     def set_column_widget(self, col, w):
  1208.         _gtk.gtk_clist_set_column_widget(self._o, col, w._o)
  1209.     def set_column_width(self, col, width):
  1210.         _gtk.gtk_clist_set_column_width(self._o, col, width)
  1211.     def set_foreground(self, row, colour):
  1212.         _gtk.gtk_clist_set_foreground(self._o, row, colour)
  1213.     def set_hadjustment(self, adj):
  1214.         _gtk.gtk_clist_set_hadjustment(self._o, adj._o)
  1215.     def set_vadjustment(self, adj):
  1216.         _gtk.gtk_clist_set_vadjustment(self._o, adj._o)
  1217.     def get_hadjustment(self):
  1218.         return GtkAdjusment(_obj=
  1219.                     _gtk.gtk_clist_get_hadjustment(self._o))
  1220.     def get_vadjustment(self):
  1221.         return GtkAdjusment(_obj=
  1222.                     _gtk.gtk_clist_get_vadjustment(self._o))
  1223.     def set_reorderable(self, reorderable):
  1224.         _gtk.gtk_clist_set_reorderable(self._o, reorderable)
  1225.     def set_use_drag_icons(self, use_icons):
  1226.         _gtk.gtk_clist_set_use_drag_icons(self._o, use_icons)
  1227.     def set_button_actions(self, button, button_actions):
  1228.         _gtk.gtk_clist_set_button_actions(self._o, button,
  1229.                           button_actions)
  1230.     def set_row_data(self, row, data):
  1231.         _gtk.gtk_clist_set_row_data(self._o, row, data)
  1232.     def set_row_height(self, height):
  1233.         _gtk.gtk_clist_set_row_height(self._o, height)
  1234.     def set_row_style(self, row, style):
  1235.         _gtk.gtk_clist_set_row_style(self._o, row, style)
  1236.     def set_shift(self, row, col, v, h):
  1237.         _gtk.gtk_clist_set_shift(self._o, row, col, v, h)
  1238.     def set_selectable(self, row, selectable):
  1239.         _gtk.gtk_clist_set_selectable(self._o, row, selectable)
  1240.     def set_selection_mode(self, mode):
  1241.         _gtk.gtk_clist_set_selection_mode(self._o, mode)
  1242.     def set_shadow_type(self, border):
  1243.         _gtk.gtk_clist_set_shadow_type(self._o, border)
  1244.     def set_sort_column(self, col):
  1245.         _gtk.gtk_clist_set_sort_column(self._o, col)
  1246.     def set_sort_type(self, sort_type):
  1247.         _gtk.gtk_clist_set_sort_type(self._o, sort_type)
  1248.     def set_text(self, r, c, text):
  1249.         _gtk.gtk_clist_set_text(self._o, r, c, text)
  1250.     def set_pixmap(self, r, c, pixmap, mask=None):
  1251.         if not mask and hasattr(pixmap, '_o'):
  1252.             pixmap, mask = pixmap.get()
  1253.         _gtk.gtk_clist_set_pixmap(self._o, r, c, pixmap, mask)
  1254.     def set_pixtext(self, r, c, text, spacing, pixmap, mask=None):
  1255.         if not mask and hasattr(pixmap, '_o'):
  1256.             pixmap, mask = pixmap.get()
  1257.         _gtk.gtk_clist_set_pixtext(self._o, r, c, text, spacing,
  1258.                        pixmap, mask)
  1259.     def sort(self):
  1260.         _gtk.gtk_clist_sort(self._o)
  1261.     def swap_rows(self, row1, row2):
  1262.         _gtk.gtk_clist_swap_rows(self._o, row1, row2)
  1263.     def thaw(self):
  1264.         _gtk.gtk_clist_thaw(self._o)
  1265.     def undo_selection(self):
  1266.         _gtk.gtk_clist_undo_selection(self._o)
  1267.     def unselect_all(self):
  1268.         _gtk.gtk_clist_unselect_all(self._o)
  1269.     def unselect_row(self, row, col):
  1270.         _gtk.gtk_clist_unselect_row(self._o, row, col)
  1271.  
  1272. class GtkCTree(GtkCList):
  1273.     get_type = _gtk.gtk_ctree_get_type
  1274.     def __init__(self, cols=1, tree_col=0, titles=None, _obj=None):
  1275.         if _obj: self._o = _obj; return
  1276.         if titles == None:
  1277.             self._o = _gtk.gtk_ctree_new(cols, tree_col)
  1278.         else:
  1279.             self._o = _gtk.gtk_ctree_new_with_titles(cols,
  1280.                                  tree_col,
  1281.                                  titles)
  1282.     def __getattr__(self, attr):
  1283.         attrs = {
  1284.             'selection':_gtk.gtk_ctree_get_selection,
  1285.         }
  1286.         if attrs.has_key(attr):
  1287.             return attrs[attr](self._o)
  1288.         return GtkCList.__getattr__(self, attr)
  1289.     def base_nodes(self):
  1290.         # this returns a list of the base nodes.  Useful for recursion
  1291.         return _gtk.gtk_ctree_base_nodes(self._o)
  1292.     def insert_node(self, parent, sibling, text, spacing=5,
  1293.             pixmap_closed=None, mask_closed=None,
  1294.             pixmap_opened=None, mask_opened=None, is_leaf=TRUE,
  1295.             expanded=FALSE):
  1296.         # parent and sibling can also be None
  1297.         return _gtk.gtk_ctree_insert_node(self._o, parent, sibling,
  1298.                           text, spacing,
  1299.                           pixmap_closed, mask_closed,
  1300.                           pixmap_opened, mask_opened,
  1301.                           is_leaf, expanded)
  1302.     def remove_node(self, node):
  1303.         _gtk.gtk_ctree_remove_node(self._o, node)
  1304.     def is_viewable(self, node):
  1305.         return _gtk.gtk_ctree_is_viewable(self._o, node)
  1306.     def last(self, node):
  1307.         return _gtk.gtk_ctree_last(self._o, node)
  1308.     def node_nth(self, row):
  1309.         return _gtk.gtk_ctree_node_nth(self._o, row)
  1310.     def find(self, node, child):
  1311.         return _gtk.gtk_ctree_find(self._o, node, child)
  1312.     def is_ancestor(self, node, child):
  1313.         return _gtk.gtk_ctree_is_ancestor(self._o, node, child)
  1314.     def find_by_row_data(self, node, data):
  1315.         return _gtk.gtk_ctree_find_by_row_data(self._o, node, data)
  1316.     def find_all_by_row_data(self, node, data):
  1317.         return _gtk.gtk_ctree_find_all_by_row_data(self._o, node, data)
  1318.     def is_hot_spot(self, x, y):
  1319.         return _gtk.gtk_ctree_is_hot_spot(self._o, x, y)
  1320.     def move(self, node, new_parent, new_sibling):
  1321.         _gtk.gtk_ctree_move(self._o, node, new_parent, new_sibling)
  1322.     def expand(self, node):
  1323.         _gtk.gtk_ctree_expand(self._o, node)
  1324.     def expand_recursive(self, node):
  1325.         _gtk.gtk_ctree_expand_recursive(self._o, node)
  1326.     def expand_to_depth(self, node, depth):
  1327.         _gtk.gtk_ctree_expand_to_depth(self._o, node, depth)
  1328.     def collapse(self, node):
  1329.         _gtk.gtk_ctree_collapse(self._o, node)
  1330.     def collapse_recursive(self, node):
  1331.         _gtk.gtk_ctree_collapse_recursive(self._o, node)
  1332.     def collapse_to_depth(self, node, depth):
  1333.         _gtk.gtk_ctree_collapse_to_depth(self._o, node, depth)
  1334.     def toggle_expansion(self, node):
  1335.         _gtk.gtk_ctree_toggle_expansion(self._o, node)
  1336.     def toggle_expansion_recursive(self, node):
  1337.         _gtk.gtk_ctree_toggle_expansion_recursive(self._o, node)
  1338.     def select(self, node):
  1339.         _gtk.gtk_ctree_select(self._o, node)
  1340.     def select_recursive(self, node):
  1341.         _gtk.gtk_ctree_select_recursive(self._o, node)
  1342.     def unselect(self, node):
  1343.         _gtk.gtk_ctree_unselect(self._o, node)
  1344.     def unselect_recursive(self, node):
  1345.         _gtk.gtk_ctree_unselect_recursive(self._o, node)
  1346.     def real_select_recursive(self, node, state):
  1347.         _gtk.gtk_ctree_real_select_recursive(self._o, node, state)
  1348.     def node_set_text(self, node, col, text):
  1349.         _gtk.gtk_ctree_node_set_text(self._o, node, col, text)
  1350.     def node_set_pixmap(self, node, col, pixmap, mask):
  1351.         _gtk.gtk_ctree_node_set_pixmap(self._o, node, col, pixmap,mask)
  1352.     def node_set_pixtext(self, node, col, text, spacing, pixmap, mask):
  1353.         _gtk.gtk_ctree_node_set_pixtext(self._o, node, col, text,
  1354.                         spacing, pixmap, mask)
  1355.     def set_node_info(self, node, text, spacing, pixmap_closed,
  1356.               mask_closed, pixmap_opened, mask_opened, is_leaf,
  1357.               expanded):
  1358.         _gtk.gtk_ctree_set_node_info(self._o, node, text, spacing,
  1359.                          pixmap_closed, mask_closed,
  1360.                          pixmap_opened, mask_opened,
  1361.                          is_leaf, expanded)
  1362.     def node_set_shift(self, node, col, vert, horiz):
  1363.         _gtk.gtk_ctree_node_set_shift(self._o, node, col, vert, horiz)
  1364.     def node_set_selectable(self, node, selectable):
  1365.         _gtk.gtk_ctree_node_set_selectable(self._o, node, selectable)
  1366.     def node_get_cell_type(self, node, col):
  1367.         return _gtk.gtk_ctree_node_get_cell_type(self._o, node, col)
  1368.     def node_get_text(self, node, col):
  1369.         return _gtk.gtk_ctree_node_get_text(self._o, node, col)
  1370.     def node_get_pixmap(self, node, col):
  1371.         return _gtk.gtk_ctree_node_get_pixmap(self._o, node, col)
  1372.     def node_get_pixtext(self, node, col):
  1373.         return _gtk.gtk_ctree_node_get_pixtext(self._o, node, col)
  1374.     def get_node_info(self, node):
  1375.         return _gtk.gtk_ctree_get_node_info(self._o, node)
  1376.     def node_set_row_style(self, node, style):
  1377.         _gtk.gtk_ctree_node_set_row_style(self._o, node, style)
  1378.     def node_get_row_style(self, node):
  1379.         return _gtk.gtk_ctree_node_get_row_style(self._o, node)
  1380.     def node_set_cell_style(self, node, col, style):
  1381.         _gtk.gtk_ctree_node_set_row_style(self._o, node, col, style)
  1382.     def node_get_cell_style(self, node, col):
  1383.         return _gtk.gtk_ctree_node_get_row_style(self._o, node, col)
  1384.     def node_set_foreground(self, node, color):
  1385.         _gtk.gtk_ctree_node_set_foreground(self._o, node, color)
  1386.     def node_set_background(self, node, color):
  1387.         _gtk.gtk_ctree_node_set_background(self._o, node, color)
  1388.     def node_set_row_data(self, node, data):
  1389.         _gtk.gtk_ctree_node_set_row_data(self._o, node, data)
  1390.     def node_get_row_data(self, node):
  1391.         return _gtk.gtk_ctree_node_get_row_data(self._o, node)
  1392.     def node_moveto(self, node, col, row_align, col_align):
  1393.         _gtk.gtk_ctree_node_moveto(self._o, node, col, row_align,
  1394.                        col_align)
  1395.     def node_is_visible(self, node):
  1396.         return _gtk.gtk_ctree_node_is_visible(self._o, node)
  1397.     def set_indent(self, indent):
  1398.         _gtk.gtk_ctree_set_indent(self._o, indent)
  1399.     def set_spacing(self, spacing):
  1400.         _gtk.gtk_ctree_set_spacing(self._o, spacing)
  1401.     def set_show_stub(self, show_stub):
  1402.         _gtk.gtk_ctree_set_show_stub(self._o, show_stub)
  1403.     def set_line_style(self, style):
  1404.         _gtk.gtk_ctree_set_line_style(self._o, style)
  1405.     def set_expander_style(self, style):
  1406.         _gtk.gtk_ctree_set_expander_style(self._o, style)
  1407.     def sort_node(self, node):
  1408.         _gtk.gtk_ctree_sort_node(self._o, node)
  1409.     def sort_recursive(self, node):
  1410.         _gtk.gtk_ctree_sort_recursive(self._o, node)
  1411.  
  1412. class GtkFixed(GtkContainer):
  1413.     get_type = _gtk.gtk_fixed_get_type
  1414.     def __init__(self, _obj=None):
  1415.         if _obj: self._o = _obj; return
  1416.         self._o = _gtk.gtk_fixed_new()
  1417.     def put(self, child, x, y):
  1418.         _gtk.gtk_fixed_put(self._o, child._o, x, y)
  1419.     def move(self, child, x, y):
  1420.         _gtk.gtk_fixed_move(self._o, child._o, x, y)
  1421.  
  1422. class GtkLayout(GtkContainer):
  1423.     get_type = _gtk.gtk_layout_get_type
  1424.     def __init__(self, hadj=None, vadj=None, _obj=None):
  1425.         if _obj: self._o = _obj; return
  1426.         if hadj and vadj:
  1427.             self._o = _gtk.gtk_layout_new(hadj._o, vadj._o)
  1428.         else:
  1429.             self._o = _gtk.gtk_layout_new()
  1430.     def put(self, child, x, y):
  1431.         _gtk.gtk_layout_put(self._o, child._o, x, y)
  1432.     def move(self, child, x, y):
  1433.         _gtk.gtk_layout_move(self._o, child._o, x, y)
  1434.     def set_size(self, width, height):
  1435.         _gtk.gtk_layout_set_size(self._o, width, height)
  1436.     def freeze(self):
  1437.         _gtk.gtk_layout_freeze(self._o)
  1438.     def thaw(self):
  1439.         _gtk.gtk_layout_thaw(self._o)
  1440.     def get_hadjustment(self):
  1441.         return GtkAdjustment(
  1442.             _obj=_gtk.gtk_layout_get_hadjustment(self._o))
  1443.     def get_vadjustment(self):
  1444.         return GtkAdjustment(
  1445.             _obj=_gtk.gtk_layout_get_vadjustment(self._o))
  1446.     def set_hadjustment(self, adj):
  1447.         _gtk.gtk_layout_set_hadjustment(self._o, adj._o)
  1448.     def set_vadjustment(self, adj):
  1449.         _gtk.gtk_layout_set_vadjustment(self._o, adj._o)
  1450.  
  1451. class GtkList(GtkContainer):
  1452.     get_type = _gtk.gtk_list_get_type
  1453.     def __init__(self, _obj=None):
  1454.         if _obj: self._o = _obj; return
  1455.         self._o = _gtk.gtk_list_new()
  1456.     def get_selection(self):
  1457.         l = _gtk.gtk_list_get_selection(self._o)
  1458.         return map(_obj2inst, l)
  1459.     def insert_items(self, items, pos):
  1460.         items = map(lambda i: i._o, items)
  1461.         _gtk.gtk_list_insert_items(self._o, items, pos)
  1462.     def append_items(self, items):
  1463.         items = map(lambda i: i._o, items)
  1464.         _gtk.gtk_list_append_items(self._o, items)
  1465.     def prepend_items(self, items):
  1466.         items = map(lambda i: i._o, items)
  1467.         _gtk.gtk_list_prepend_items(self._o, items)
  1468.     def remove_items(self, items):
  1469.         items = map(lambda i: i._o, items)
  1470.         _gtk.gtk_list_remove_items(self._o, items)
  1471.     def clear_items(self, start, end):
  1472.         _gtk.gtk_list_clear_items(self._o, start, end)
  1473.     def select_item(self, item):
  1474.         _gtk.gtk_list_select_item(self._o, item)
  1475.     def unselect_item(self, item):
  1476.         _gtk.gtk_list_unselect_item(self._o, item)
  1477.     def select_child(self, child):
  1478.         _gtk.gtk_list_select_child(self._o, child._o)
  1479.     def unselect_child(self, child):
  1480.         _gtk.gtk_list_unselect_child(self._o, child._o)
  1481.     def child_position(self, child):
  1482.         return _gtk.gtk_list_child_position(self._o, child._o)
  1483.     def set_selection_mode(self, mode):
  1484.         _gtk.gtk_list_set_selection_mode(self._o, mode)
  1485.     def extend_selection(self, scroll_type, pos, auto):
  1486.         _gtk.gtk_list_extend_selection(self._o, scroll_type, pos, auto)
  1487.     def start_selection(self):
  1488.         _gtk.gtk_list_start_selection(self._o)
  1489.     def end_selection(self):
  1490.         _gtk.gtk_list_end_selection(self._o)
  1491.     def select_all(self):
  1492.         _gtk.gtk_list_select_all(self._o)
  1493.     def unselect_all(self):
  1494.         _gtk.gtk_list_unselect_all(self._o)
  1495.     def scroll_horizontal(self, scroll_type, pos):
  1496.         _gtk.gtk_list_scroll_horizontal(self._o, scroll_type, pos)
  1497.     def scroll_vertical(self, scroll_type, pos):
  1498.         _gtk.gtk_list_scroll_vertical(self._o, scroll_type, pos)
  1499.     def toggle_add_mode(self):
  1500.         _gtk.gtk_list_toggle_add_mode(self._o)
  1501.     def toggle_focus_row(self):
  1502.         _gtk.gtk_list_toggle_focus_row(self._o)
  1503.     def toggle_row(self, item):
  1504.         _gtk.gtk_list_toggle_row(self._o, item._o)
  1505.     def undo_selection(self):
  1506.         _gtk.gtk_list_undo_selection(self._o)
  1507.     def end_drag_selection(self):
  1508.         _gtk.gtk_list_end_drag_selection(self._o)
  1509.  
  1510. class GtkMenuShell(GtkContainer):
  1511.     get_type = _gtk.gtk_menu_shell_get_type
  1512.     def __init__(self, _obj=None):
  1513.         if _obj: self._o = _obj; return
  1514.     def append(self, child):
  1515.         _gtk.gtk_menu_shell_append(self._o, child._o)
  1516.     def prepend(self, child):
  1517.         _gtk.gtk_menu_shell_prepend(self._o, child._o)
  1518.     def insert(self, child, pos):
  1519.         _gtk.gtk_menu_shell_insert(self._o, child._o, pos)
  1520.     def deactivate(self, obj=None):
  1521.         _gtk.gtk_menu_shell_deactivate(self._o)
  1522.     def select_item(self, item):
  1523.         _gtk.gtk_menu_shell_select_item(self._o, item._o)
  1524.     def deselect(self):
  1525.         _gtk.gtk_menu_shell_deselect(self._o)
  1526.     def activate_item(self, item, force_deactivate):
  1527.         _gtk.gtk_menu_shell_activate_item(self._o, item._o,
  1528.                           force_deactivate)
  1529.  
  1530. class GtkMenuBar(GtkMenuShell):
  1531.     get_type = _gtk.gtk_menu_bar_get_type
  1532.     def __init__(self, _obj=None):
  1533.         if _obj: self._o = _obj; return
  1534.         self._o = _gtk.gtk_menu_bar_new()
  1535.     def append(self, child):
  1536.         _gtk.gtk_menu_bar_append(self._o, child._o)
  1537.     def prepend(self, child):
  1538.         _gtk.gtk_menu_bar_prepend(self._o, child._o)
  1539.     def insert(self, child, pos):
  1540.         _gtk.gtk_menu_bar_insert(self._o, child._o, pos)
  1541.     def set_shadow_type(self, type):
  1542.         _gtk.gtk_menu_bar_set_shadow_type(self._o, type)
  1543.  
  1544. class GtkMenu(GtkMenuShell):
  1545.     get_type = _gtk.gtk_menu_get_type
  1546.     def __init__(self, _obj=None):
  1547.         if _obj: self._o = _obj; return
  1548.         self._o = _gtk.gtk_menu_new()
  1549.     def append(self, child):
  1550.         _gtk.gtk_menu_append(self._o, child._o)
  1551.     def prepend(self, child):
  1552.         _gtk.gtk_menu_prepend(self._o, child._o)
  1553.     def insert(self, child, pos):
  1554.         _gtk.gtk_menu_insert(self._o, child._o, pos)
  1555.     def popup(self, pms, pmi, func, button, time):
  1556.         if pms: pms = pms._o
  1557.         if pmi: pmi = pmi._o
  1558.         _gtk.gtk_menu_popup(self._o, pms, pmi, func, button, time)
  1559.     def reposition(self):
  1560.         _gtk.gtk_menu_reposition(self._o)
  1561.     def popdown(self, obj=None):
  1562.         _gtk.gtk_menu_popdown(self._o)
  1563.     def get_active(self):
  1564.         return _obj2inst(_gtk.gtk_menu_get_active(self._o))
  1565.     def get_attach_widget(self):
  1566.         return _obj2inst(_gtk.gtk_menu_get_attach_widget(self._o))
  1567.     def detach(self):
  1568.         _gtk.gtk_menu_detach(self._o)
  1569.     def set_active(self, index):
  1570.         _gtk.gtk_menu_set_active(self._o, index)
  1571.     def set_accel_group(self, group):
  1572.         _gtk.gtk_menu_set_accel_group(self._o, group._ag)
  1573.     def get_accel_group(self):
  1574.         return GtkAccelGroup(_obj=
  1575.                      _gtk.gtk_menu_get_accel_group(self._o))
  1576.     def set_tearoff_state(self, torn_off):
  1577.         _gtk.gtk_menu_set_tearoff_state(self._o, torn_off)
  1578.     def set_title(self, title):
  1579.         _gtk.gtk_menu_set_title(self._o, title)
  1580.     def reorder_child(self, child, position):
  1581.         _gtk.gtk_menu_reorder_child(self._o, child._o, position)
  1582.  
  1583. class GtkNotebook(GtkContainer):
  1584.     get_type = _gtk.gtk_notebook_get_type
  1585.     def __init__(self, _obj=None):
  1586.         if _obj: self._o = _obj; return
  1587.         self._o = _gtk.gtk_notebook_new()
  1588.     def append_page(self, child, tab):
  1589.         _gtk.gtk_notebook_append_page(self._o, child._o, tab._o)
  1590.     def append_page_menu(self, child, tab, ml):
  1591.         _gtk.gtk_notebook_append_page_menu(self._o, child._o, tab._o,
  1592.                            ml._o)
  1593.     def prepend_page(self, child, tab):
  1594.         _gtk.gtk_notebook_prepend_page(self._o, child._o, tab._o)
  1595.     def prepend_page_menu(self, child, tab, ml):
  1596.         _gtk.gtk_notebook_prepend_page_menu(self._o, child._o, tab._o,
  1597.                             ml._o)
  1598.     def insert_page(self, child, tab, pos):
  1599.         _gtk.gtk_notebook_insert_page(self._o, child._o, tab._o, pos)
  1600.     def insert_page_menu(self, child, tab, ml, pos):
  1601.         _gtk.gtk_notebook_insert_page_menu(self._o, child._o, tab._o,
  1602.                            ml._o, pos)
  1603.     def remove_page(self, pos):
  1604.         _gtk.gtk_notebook_remove_page(self._o, pos)
  1605.     def current_page(self):
  1606.         print "current_page deprecated -- use get_current_page"
  1607.         return self.current_page()
  1608.     def get_current_page(self):
  1609.         return _gtk.gtk_notebook_get_current_page(self._o)
  1610.     def get_nth_page(self, page_num):
  1611.         return _obj2inst(_gtk.gtk_notebook_get_nth_page(self._o,
  1612.                                 page_num))
  1613.     def page_num(self, child):
  1614.         return _gtk.gtk_notebook_page_num(self._o, child._o)
  1615.     def set_page(self, pos):
  1616.         _gtk.gtk_notebook_set_page(self._o, pos)
  1617.     def next_page(self, obj=None):
  1618.         _gtk.gtk_notebook_next_page(self._o)
  1619.     def prev_page(self, obj=None):
  1620.         _gtk.gtk_notebook_prev_page(self._o)
  1621.     def reorder_child(self, child, pos):
  1622.         _gtk.gtk_notebook_reorder_child(self._o, child._o, pos)
  1623.     def set_tab_border(self, border):
  1624.         _gtk.gtk_notebook_set_tab_border(self._o, border)
  1625.     def set_tab_hborder(self, tab_hborder):
  1626.         _gtk.gtk_notebook_set_tab_hborder(self._o, tab_hborder)
  1627.     def set_tab_vborder(self, tab_vborder):
  1628.         _gtk.gtk_notebook_set_tab_hborder(self._o, tab_vborder)
  1629.     def get_tab_pos(self):
  1630.         return _gtk.gtk_notebook_get_tab_pos(self._o)
  1631.     def set_tab_pos(self, pos):
  1632.         _gtk.gtk_notebook_set_tab_pos(self._o, pos)
  1633.     def set_homogeneous_tabs(self, homog):
  1634.         _gtk.gtk_notebook_set_homogeneous_tabs(self._o, homog)
  1635.     def set_scrollable(self, scrollable):
  1636.         _gtk.gtk_notebook_set_scrollable(self._o, scrollable)
  1637.     def set_show_tabs(self, show):
  1638.         _gtk.gtk_notebook_set_show_tabs(self._o, show)
  1639.     def set_show_border(self, show):
  1640.         _gtk.gtk_notebook_set_show_border(self._o, show)
  1641.     def popup_enable(self, obj=None):
  1642.         _gtk.gtk_notebook_popup_enable(self._o)
  1643.     def popup_disable(self, obj=None):
  1644.         _gtk.gtk_notebook_popup_disable(self._o)
  1645.     def query_tab_label(self, child):
  1646.         print "query_tab_label deprecated -- use get_tab_label"
  1647.         return self.get_tab_label(child)
  1648.     def get_tab_label(self, child):
  1649.         return _obj2inst(_gtk.gtk_notebook_get_tab_label(self._o,
  1650.                                  child._o))
  1651.     def set_tab_label(self, child, tab_label):
  1652.         _gtk.gtk_notebook_set_tab_label(self._o, child._o,
  1653.                         tab_label._o)
  1654.     def set_tab_label_text(self, child, tab_text):
  1655.         _gtk.gtk_notebook_set_tab_label_text(self._o, child._o,
  1656.                              tab_text)
  1657.     def query_menu_label(self, child):
  1658.         print "query_menu_label deprecated -- use get_menu_label"
  1659.         return self.get_menu_label(child)
  1660.     def get_menu_label(self, child):
  1661.         return _obj2inst(_gtk.gtk_notebook_get_menu_label(self._o,
  1662.                                   child._o))
  1663.     def set_menu_label(self, child, menu_label):
  1664.         _gtk.gtk_notebook_set_menu_label(self._o, child._o,
  1665.                         menu_label._o)
  1666.     def set_menu_label_text(self, child, menu_text):
  1667.         _gtk.gtk_notebook_set_menu_label(self._o, child._o, menu_text)
  1668.     def query_tab_label_packing(self, child):
  1669.         # returns (expand,fill,pack_type)
  1670.         return _gtk.gtk_notebook_query_tab_label_packing(self._o,
  1671.                                  child._o)
  1672.     def set_tab_label_packing(self, child, expand, fill, pack_type):
  1673.         _gtk.gtk_notebook_set_tab_label_packing(self._o, child._o,
  1674.                             expand, fill,
  1675.                             pack_type)
  1676.  
  1677. class GtkFontSelection(GtkNotebook):
  1678.     get_type = _gtk.gtk_font_selection_get_type
  1679.     def __init__(self, _obj=None):
  1680.         if _obj: self._o = _obj; return
  1681.         self._o = _gtk.gtk_font_selection_new()
  1682.     def get_font_name(self):
  1683.         return _gtk.gtk_font_selection_get_font_name(self._o)
  1684.     def get_font(self):
  1685.         return _gtk.gtk_font_selection_get_font(self._o)
  1686.     def set_font_name(self, name):
  1687.         return _gtk.gtk_font_selection_set_font_name(self._o, name)
  1688.     def get_preview_text(self):
  1689.         return _gtk.gtk_font_selection_get_preview_text(self._o)
  1690.     def set_preview_text(self, text):
  1691.         _gtk.gtk_font_selection_set_preview_text(self._o, text)
  1692.  
  1693. class GtkPacker(GtkContainer):
  1694.     get_type = _gtk.gtk_packer_get_type
  1695.     def __init__(self, _obj=None):
  1696.         if _obj: self._o = _obj; return
  1697.         self._o = _gtk.gtk_packer_new()
  1698.     def add_defaults(self, child, side, anchor, options):
  1699.         _gtk.gtk_packer_add_defaults(self._o, child._o, side, anchor,
  1700.                          options)
  1701.     def add(self, child, side=SIDE_TOP, anchor=ANCHOR_CENTER,
  1702.         options=0, border_width=0, pad_x=0, pad_y=0,
  1703.          i_pad_x=0, i_pad_y=0):
  1704.         _gtk.gtk_packer_add(self._o, child._o, side, anchor, options,
  1705.                     border_width, pad_x, pad_y, i_pad_x,
  1706.                     i_pad_y)
  1707.     def configure(self, child, side, anchor, options, border_width, pad_x,
  1708.               pad_y, i_pad_x, i_pad_y):
  1709.         print "configure deprecated -- use set_child_packing"
  1710.         self.set_child_packing(child, side, anchor, options,
  1711.                        border_width, pad_x, pad_y, i_pad_x,
  1712.                        i_pad_y)
  1713.     def set_child_packing(self, child, side, anchor, options,
  1714.                   border_width, pad_x, pad_y, i_pad_x, i_pad_y):
  1715.         _gtk.gtk_packer_set_child_packing(self._o, child._o, side,
  1716.                           anchor, options,
  1717.                           border_width, pad_x, pad_y,
  1718.                           i_pad_x, i_pad_y)
  1719.     def reorder_child(self, child, pos):
  1720.         _gtk.gtk_packer_reorder_child(self._o, child._o, pos)
  1721.     def set_spacing(self, spacing):
  1722.         _gtk.gtk_packer_set_spacing(self._o, spacing)
  1723.     def set_default_pad(self, pad_x, pad_y):
  1724.         _gtk.gtk_packer_set_default_pad(self._o, pad_x, pad_y)
  1725.     def set_default_ipad(self, i_pad_x, i_pad_y):
  1726.         _gtk.gtk_packer_set_default_ipad(self._o, i_pad_x, i_pad_y)
  1727.  
  1728. class GtkPaned(GtkContainer):
  1729.     get_type = _gtk.gtk_paned_get_type
  1730.     def __init__(self, _obj=None):
  1731.         if _obj: self._o = _obj; return
  1732.     def add1(self, child):
  1733.         _gtk.gtk_paned_add1(self._o, child._o)
  1734.     def add2(self, child):
  1735.         _gtk.gtk_paned_add2(self._o, child._o)
  1736.     def pack1(self, child, resize=TRUE, shrink=TRUE):
  1737.         _gtk.gtk_paned_pack1(self._o, child._o, resize, shrink)
  1738.     def pack2(self, child, resize=TRUE, shrink=TRUE):
  1739.         _gtk.gtk_paned_pack2(self._o, child._o, resize, shrink)
  1740.     def set_position(self, position):
  1741.         _gtk.gtk_paned_set_position(self._o, position)
  1742.     def handle_size(self, size):
  1743.         print "handle_size deprecated -- use set_handle_size"
  1744.         self.set_handle_size(size)
  1745.     def set_handle_size(self, size):
  1746.         _gtk.gtk_paned_set_handle_size(self._o, size)
  1747.     def gutter_size(self, size):
  1748.         print "gutter_size deprecated -- use set_gutter_size"
  1749.         self.set_gutter_size(size)
  1750.     def set_gutter_size(self, size):
  1751.         _gtk.gtk_paned_set_gutter_size(self._o, size)
  1752.  
  1753. class GtkHPaned(GtkPaned):
  1754.     get_type = _gtk.gtk_hpaned_get_type
  1755.     def __init__(self, _obj=None):
  1756.         if _obj: self._o = _obj; return
  1757.         self._o = _gtk.gtk_hpaned_new()
  1758.  
  1759. class GtkVPaned(GtkPaned):
  1760.     get_type = _gtk.gtk_vpaned_get_type
  1761.     def __init__(self, _obj=None):
  1762.         if _obj: self._o = _obj; return
  1763.         self._o = _gtk.gtk_vpaned_new()
  1764.  
  1765. class GtkScrolledWindow(GtkBin):
  1766.     get_type = _gtk.gtk_scrolled_window_get_type
  1767.     def __init__(self, hadj=None, vadj=None, _obj=None):
  1768.         if _obj: self._o = _obj; return
  1769.         if hadj: hadj = hadj._o
  1770.         if vadj: vadj = vadj._o
  1771.         self._o = _gtk.gtk_scrolled_window_new(hadj, vadj)
  1772.     def get_hadjustment(self):
  1773.         return _obj2inst(_gtk.gtk_scrolled_window_get_hadjustment(
  1774.             self._o))
  1775.     def get_vadjustment(self):
  1776.         return _obj2inst(_gtk.gtk_scrolled_window_get_vadjustment(
  1777.             self._o))
  1778.     def set_hadjustment(self, adjustment):
  1779.         _gtk.gtk_scrolled_window_set_hadjustment(self._o,adjustment._o)
  1780.     def set_vadjustment(self, adjustment):
  1781.         _gtk.gtk_scrolled_window_set_vadjustment(self._o,adjustment._o)
  1782.     def set_policy(self, hp, vp):
  1783.         _gtk.gtk_scrolled_window_set_policy(self._o, hp, vp)
  1784.     def set_placement(self, window_place):
  1785.         _gtk.gtk_scrolled_window_set_placement(self._o, window_place)
  1786.     def add_with_viewport(self, child):
  1787.         _gtk.gtk_scrolled_window_add_with_viewport(self._o, child._o)
  1788.  
  1789. class GtkSocket(GtkContainer):
  1790.     get_type = _gtk.gtk_socket_get_type
  1791.     def __init__(self, _obj=None):
  1792.         if _obj: self._o = _obj; return
  1793.         self._o = _gtk.gtk_socket_new()
  1794.     def steal(self, wid):
  1795.         _gtk.gtk_socket_steal(self._o, wid)
  1796.  
  1797. class GtkTable(GtkContainer):
  1798.     get_type = _gtk.gtk_table_get_type
  1799.     def __init__(self, rows=1, cols=1, homogeneous=0, _obj=None):
  1800.         if _obj: self._o = _obj; return
  1801.         self._o = _gtk.gtk_table_new(rows, cols, homogeneous)
  1802.     def attach(self, child, la, ra, ta, ba, xoptions=EXPAND|FILL,
  1803.             yoptions=EXPAND|FILL, xpadding=0, ypadding=0):
  1804.         _gtk.gtk_table_attach(self._o, child._o, la,ra,ta,ba,
  1805.             xoptions,yoptions, xpadding,ypadding)
  1806.     def set_row_spacing(self, row, s):
  1807.         _gtk.gtk_table_set_row_spacing(self._o, row, s)
  1808.     def set_col_spacing(self, col, s):
  1809.         _gtk.gtk_table_set_col_spacing(self._o, col, s)
  1810.     def set_row_spacings(self, s):
  1811.         _gtk.gtk_table_set_row_spacings(self._o, s)
  1812.     def set_col_spacings(self, s):
  1813.         _gtk.gtk_table_set_col_spacings(self._o, s)
  1814.     def set_homogeneous(self, homogeneous):
  1815.             _gtk.gtk_table_set_homogeneous(self._o, homogeneous)
  1816.  
  1817. class GtkTree(GtkContainer):
  1818.     get_type = _gtk.gtk_tree_get_type
  1819.     def __init__(self, _obj=None):
  1820.         if _obj: self._o = _obj; return
  1821.         self._o = _gtk.gtk_tree_new()
  1822.     def get_selection(self):
  1823.         return map(_obj2inst, _gtk.gtk_tree_get_selection(self._o))
  1824.     def append(self, child):
  1825.         _gtk.gtk_tree_append(self._o, child._o)
  1826.     def prepend(self, child):
  1827.         _gtk.gtk_tree_prepend(self._o, child._o)
  1828.     def insert(self, child, pos):
  1829.         _gtk.gtk_tree_insert(self._o, child._o, pos)
  1830.     def remove_item(self, child):
  1831.         # fix this when the function starts existing
  1832.         #_gtk.gtk_tree_remove_item(self._o, child._o)
  1833.         self.remove_items([child])
  1834.     def remove_items(self, children):
  1835.         children = map(lambda x: x._o, children)
  1836.         _gtk.gtk_tree_remove_items(self._o, children)
  1837.     def clear_items(self, start, end):
  1838.         _gtk.gtk_tree_clear_items(self._o, start, end)
  1839.     def select_item(self, item):
  1840.         _gtk.gtk_tree_select_item(self._o, item)
  1841.     def unselect_item(self, item):
  1842.         _gtk.gtk_tree_unselect_item(self._o, item)
  1843.     def select_child(self, child):
  1844.         _gtk.gtk_tree_select_child(self._o, child._o)
  1845.     def unselect_child(self, child):
  1846.         _gtk.gtk_tree_unselect_child(self._o, child._o)
  1847.     def child_position(self, child):
  1848.         return _gtk.gtk_tree_child_position(self._o, child._o)
  1849.     def set_selection_mode(self, mode):
  1850.         _gtk.gtk_tree_set_selection_mode(self._o, mode)
  1851.     def set_view_mode(self, mode):
  1852.         _gtk.gtk_tree_set_view_mode(self._o, mode)
  1853.     def set_view_lines(self, flag):
  1854.         _gtk.gtk_tree_set_view_lines(self._o, flag)
  1855.  
  1856. class GtkToolbar(GtkContainer):
  1857.     get_type = _gtk.gtk_toolbar_get_type
  1858.     def __init__(self, orientation=ORIENTATION_HORIZONTAL,
  1859.              style=TOOLBAR_ICONS, _obj=None):
  1860.         if _obj: self._o = _obj; return
  1861.         self._o = _gtk.gtk_toolbar_new(orientation, style)
  1862.         def append_item(self, text, tooltip, tp, icon, callback):
  1863.         return _obj2inst(_gtk.gtk_toolbar_append_item(
  1864.             self._o, text, tooltip, tp, icon._o, callback))
  1865.     def append_space(self):
  1866.         _gtk.gtk_toolbar_append_space(self._o)
  1867.     def append_widget(self, w, tooltip, tp):
  1868.         _gtk.gtk_toolbar_append_widget(self._o, w._o, tooltip, tp)
  1869.     def insert_item(self, text, tooltip, tp, icon, callback, pos):
  1870.         return _obj2inst(_gtk.gtk_toolbar_insert_item(
  1871.             self._o, text, tooltip, tp, icon._o, callback, pos))
  1872.     def insert_space(self, pos):
  1873.         _gtk.gtk_toolbar_insert_space(self._o, pos)
  1874.     def insert_widget(self, w, tooltip, tp, pos):
  1875.         _gtk.gtk_toolbar_insert_widget(self._o, w._o, tooltip, tp, pos)
  1876.     def prepend_item(self, text, tooltip, tp, icon, callback):
  1877.         return _obj2inst(_gtk.gtk_toolbar_prepend_item(
  1878.             self._o, text, tooltip, tp, icon._o, callback))
  1879.     def prepend_space(self):
  1880.         _gtk.gtk_toolbar_prepend_space(self._o)
  1881.     def prepend_widget(self, w, tooltip, tp):
  1882.         _gtk.gtk_toolbar_prepend_widget(self._o, w._o, tooltip, tp)
  1883.            def set_orientation(self, orientation):
  1884.         _gtk.gtk_toolbar_set_orientation(self._o, orientation)
  1885.     def set_style(self, style):
  1886.         _gtk.gtk_toolbar_set_style(self._o, style)
  1887.     def set_space_size(self, size):
  1888.         _gtk.gtk_toolbar_set_space_size(self._o, size)
  1889.     def set_space_style(self, style):
  1890.         _gtk.gtk_toolbar_set_space_style(self._o, style)
  1891.     def set_tooltips(self, enable):
  1892.         _gtk.gtk_toolbar_set_tooltips(self._o, enable)
  1893.     def set_button_relief(self, relief):
  1894.         _gtk.gtk_toolbar_set_button_relief(self._o, relief)
  1895.     def get_button_relief(self):
  1896.         return _gtk.gtk_toolbar_get_button_relief(self._o)
  1897.  
  1898. class GtkDrawingArea(GtkWidget):
  1899.     get_type = _gtk.gtk_drawing_area_get_type
  1900.     def __init__(self, _obj=None):
  1901.         self.__win = None
  1902.         if _obj: self._o = _obj; return
  1903.         self._o = _gtk.gtk_drawing_area_new()
  1904.     def size(self, w, h):
  1905.         _gtk.gtk_drawing_area_size(self._o, w, h)
  1906.     def __cache_win(self):
  1907.         self.realize()
  1908.         self.__win = self.get_window()
  1909.     def draw_point(self, gc, x, y):
  1910.         if not self.__win: self.__cache_win()
  1911.         _gtk.gdk_draw_point(self.__win, gc, x, y)
  1912.     def draw_line(self, gc, x1, y1, x2, y2):
  1913.         if not self.__win: self.__cache_win()
  1914.         _gtk.gdk_draw_line(self.__win, gc, x1, y1, x2, y2)
  1915.     def draw_rectangle(self, gc, fill, x, y, width, height):
  1916.         if not self.__win: self.__cache_win()
  1917.         _gtk.gdk_draw_rectangle(self.__win, gc, fill, x, y,
  1918.                     width, height)
  1919.     def draw_arc(self, gc, fill, x, y, width, height, angle1, angle2):
  1920.         if not self.__win: self.__cache_win()
  1921.         _gtk.gdk_draw_arc(self.__win, gc, fill, x, y, width, height,
  1922.                   angle1, angle2)
  1923.     def draw_polygon(self, gc, fill, points):
  1924.         if not self.__win: self.__cache_win()
  1925.         _gtk.gdk_draw_polygon(self.__win, gc, fill, points)
  1926.     def draw_string(self, font, gc, x, y, string):
  1927.         if not self.__win: self.__cache_win()
  1928.         _gtk.gdk_draw_string(self.__win, font, gc, x, y, string)
  1929.     def draw_text(self, font, gc, x, y, text):
  1930.         if not self.__win: self.__cache_win()
  1931.         _gtk.gdk_draw_text(self.__win, font, gc, x, y, text)
  1932.     def draw_pixmap(self, gc, src, xsrc,ysrc, xdest,ydest, width,height):
  1933.         if not self.__win: self.__cache_win()
  1934.         _gtk.gdk_draw_pixmap(self.__win, gc, src, xsrc,ysrc,
  1935.                      xdest,ydest, width,height)
  1936.     def draw_points(self, gc, points):
  1937.         if not self.__win: self.__cache_win()
  1938.         _gtk.gdk_draw_points(self.__win, gc, points)
  1939.     def draw_segments(self, gc, segs):
  1940.         if not self.__win: self.__cache_win()
  1941.         _gtk.gdk_draw_segments(self.__win, gc, segs)
  1942.     def draw_lines(self, gc, points):
  1943.         if not self.__win: self.__cache_win()
  1944.         _gtk.gdk_draw_lines(self.__win, gc, points)
  1945.  
  1946. class GtkCurve(GtkDrawingArea):
  1947.     get_type = _gtk.gtk_curve_get_type
  1948.     def __init__(self, _obj=None):
  1949.         if _obj: self._o = _obj; return
  1950.         self._o = _gtk.gtk_curve_new()
  1951.     def reset(self):
  1952.         _gtk.gtk_curve_reset(self._o)
  1953.     def get_vector(self, size=-1):
  1954.         return _gtk.gtk_curve_get_vector(self._o, size)
  1955.     def set_vector(self, vector):
  1956.         _gtk.gtk_curve_set_vector(self._o, vector)
  1957.     def set_gamma(self, g):
  1958.         _gtk.gtk_curve_set_gamma(self._o, g)
  1959.     def set_range(self, minx,maxx, miny,maxy):
  1960.         _gtk.gtk_curve_set_range(self._o, minx,maxx, miny,maxy)
  1961.     def set_curve_type(self, tp):
  1962.         _gtk.gtk_curve_set_curve_type(self._o, tp)
  1963.  
  1964. class GtkEditable(GtkWidget):
  1965.     get_type = _gtk.gtk_editable_get_type
  1966.     def __init__(self, _obj=None):
  1967.         if _obj: self._o = _obj; return
  1968.     def select_region(self, start, end):
  1969.         _gtk.gtk_editable_select_region(self._o, start, end)
  1970.     def insert_text(self, new_text):
  1971.         return _gtk.gtk_editable_insert_text(self._o, new_text)
  1972.     def delete_text(self, start, end):
  1973.         _gtk.gtk_editable_delete_text(self._o, start, end)
  1974.     def get_chars(self, start, end):
  1975.         return _gtk.gtk_editable_get_chars(self._o, start, end)
  1976.     def cut_clipboard(self):
  1977.         _gtk.gtk_editable_cut_clipboard(self._o)
  1978.     def copy_clipboard(self):
  1979.         _gtk.gtk_editable_copy_clipboard(self._o)
  1980.     def paste_clipboard(self):
  1981.         _gtk.gtk_editable_paste_clipboard(self._o)
  1982.     def claim_selection(self, claim, time):
  1983.         _gtk.gtk_editable_claim_selection(self._o, claim, time)
  1984.     def delete_selection(self):
  1985.         _gtk.gtk_editable_delete_selection(self._o)
  1986.     def changed(self):
  1987.         _gtk.gtk_editable_changed(self._o)
  1988.     def set_position(self, pos):
  1989.         _gtk.gtk_editable_set_position(self._o, pos)
  1990.     def get_position(self):
  1991.         return _gtk.gtk_editable_get_position(self._o)
  1992.     def set_editable(self, is_editable):
  1993.         _gtk.gtk_editable_set_editable(self._o, is_editable)
  1994.  
  1995. class GtkEntry(GtkEditable):
  1996.     get_type = _gtk.gtk_entry_get_type
  1997.     def __init__(self, maxlen=-1, _obj=None):
  1998.         if _obj: self._o = _obj; return
  1999.         if maxlen == -1:
  2000.             self._o = _gtk.gtk_entry_new()
  2001.         else:
  2002.             self._o = _gtk.gtk_entry_new_with_max_length(maxlen)
  2003.     def set_text(self, text):
  2004.         _gtk.gtk_entry_set_text(self._o, text)
  2005.     def append_text(self, text):
  2006.         _gtk.gtk_entry_append_text(self._o, text)
  2007.     def prepend_text(self, text):
  2008.         _gtk.gtk_entry_prepend_text(self._o, text)
  2009.     def set_position(self, pos):
  2010.         _gtk.gtk_entry_set_position(self._o, pos)
  2011.     def get_text(self):
  2012.         return _gtk.gtk_entry_get_text(self._o)
  2013.     def select_region(self, start, stop):
  2014.         _gtk.gtk_entry_select_region(self._o, start, stop)
  2015.     def set_visibility(self, visible):
  2016.         _gtk.gtk_entry_set_visibility(self._o, visible)
  2017.     def set_editable(self, editable):
  2018.         _gtk.gtk_entry_set_editable(self._o, editable)
  2019.     def set_max_length(self, max):
  2020.         _gtk.gtk_entry_set_max_length(self._o, max)
  2021.  
  2022. class GtkSpinButton(GtkEntry):
  2023.     get_type = _gtk.gtk_spin_button_get_type
  2024.     def __init__(self, adj=None, climb_rate=1, digits=1, _obj=None):
  2025.         if _obj: self._o = _obj; return
  2026.         if adj:
  2027.             adj = adj._o
  2028.         self._o = _gtk.gtk_spin_button_new(adj, climb_rate, digits)
  2029.     def set_adjustment(self, adj):
  2030.         _gtk.gtk_spin_button_set_adjustment(self._o, adj._o)
  2031.     def get_adjustment(self):
  2032.         return _obj2inst(_gtk.gtk_spin_button_get_adjustment(sel._o))
  2033.     def set_digits(self, digits):
  2034.         _gtk.gtk_spin_button_set_digits(self._o, digits)
  2035.     def get_value_as_float(self):
  2036.         return _gtk.gtk_spin_button_get_value_as_float(self._o)
  2037.     def get_value_as_int(self):
  2038.         return _gtk.gtk_spin_button_get_value_as_int(self._o)
  2039.     get_value = get_value_as_float
  2040.     def set_value(self, val):
  2041.         _gtk.gtk_spin_button_set_value(self._o, val)
  2042.     def set_update_policy(self, pol):
  2043.         _gtk.gtk_spin_button_set_update_policy(self._o, pol)
  2044.     def set_numeric(self, numeric):
  2045.         _gtk.gtk_spin_button_set_numeric(self._o, numeric)
  2046.     def spin(self, direction, step):
  2047.         _gtk.gtk_spin_button_spin(self._o, direction, step)
  2048.     def set_wrap(self, wrap):
  2049.             _gtk.gtk_spin_button_set_wrap(self._o, wrap)
  2050.     def set_shadow_type(self, shadow_type):
  2051.         _gtk.gtk_spin_button_set_shadow_type(self._o, shadow_type)
  2052.     def set_snap_to_ticks(self, snap):
  2053.         _gtk.gtk_spin_button_set_snap_to_ticks(self._o, snap)
  2054.     def update(self):
  2055.         _gtk.gtk_spin_button_update(self._o)
  2056.  
  2057. class GtkText(GtkEditable):
  2058.     get_type = _gtk.gtk_text_get_type
  2059.     def __init__(self, hadj=None, vadj=None, _obj=None):
  2060.         if _obj: self._o = _obj; return
  2061.         if hadj: hadj = hadj._o
  2062.         if vadj: vadj = vadj._o
  2063.         self._o = _gtk.gtk_text_new(hadj, vadj)
  2064.     def set_editable(self, editable):
  2065.         _gtk.gtk_text_set_editable(self._o, editable)
  2066.     def set_word_wrap(self, word_wrap):
  2067.         _gtk.gtk_text_set_word_wrap(self._o, word_wrap)
  2068.     def set_line_wrap(self, line_wrap):
  2069.         _gtk.gtk_text_set_line_wrap(self._o, line_wrap)
  2070.     def set_adjustments(self, hadj, vadj):
  2071.         _gtk.gtk_text_set_adjustments(self._o, hadj._o, vadj._o)
  2072.     def get_hadjustment(self):
  2073.         return _obj2inst(_gtk.gtk_text_get_hadj(self._o))
  2074.     def get_vadjustment(self):
  2075.         return _obj2inst(_gtk.gtk_text_get_vadj(self._o))
  2076.     def set_point(self, point):
  2077.         _gtk.gtk_text_set_point(self._o, point)
  2078.     def get_point(self):
  2079.         return _gtk.gtk_text_get_point(self._o)
  2080.     def get_length(self):
  2081.         return _gtk.gtk_text_get_length(self._o)
  2082.     def freeze(self, obj=None):
  2083.         _gtk.gtk_text_freeze(self._o)
  2084.     def thaw(self, obj=None):
  2085.         _gtk.gtk_text_thaw(self._o)
  2086.     def insert(self, font, fg, bg, string):
  2087.         _gtk.gtk_text_insert(self._o, font, fg, bg, string,
  2088.                      len(string))
  2089.     def insert_defaults(self, chars):
  2090.         _gtk.gtk_text_insert_defaults(self._o, chars)
  2091.     def backward_delete(self, nchars):
  2092.         _gtk.gtk_text_backward_delete(self._o, nchars)
  2093.     def forward_delete(self, nchars):
  2094.         _gtk.gtk_text_forward_delete(self._o, nchars)
  2095.  
  2096. class GtkMisc(GtkWidget):
  2097.     get_type = _gtk.gtk_misc_get_type
  2098.     def __init__(self, _obj=None):
  2099.         if _obj: self._o = _obj; return
  2100.     def set_alignment(self, xa, ya):
  2101.         _gtk.gtk_misc_set_alignment(self._o, xa, ya)
  2102.     def set_padding(self, xp, yp):
  2103.         _gtk.gtk_misc_set_padding(self._o, xp, yp)
  2104.  
  2105. class GtkArrow(GtkMisc):
  2106.     get_type = _gtk.gtk_arrow_get_type
  2107.     def __init__(self, at=ARROW_RIGHT, st=SHADOW_OUT, _obj=None):
  2108.         if _obj: self._o = _obj; return
  2109.         self._o = _gtk.gtk_arrow_new(at, st)
  2110.     def set(self, at, st):
  2111.         _gtk.gtk_arrow_set(self._o, at, st)
  2112.  
  2113. class GtkPixmap(GtkMisc):
  2114.     get_type = _gtk.gtk_pixmap_get_type
  2115.     def __init__(self, parent_or_pixmap=None, xpm_or_mask=None, bg=None,
  2116.              _obj=None):
  2117.         # This function can be called with two argument models:
  2118.         # The old model:
  2119.         #  GtkPixmap(parent_win, xpm_file, bg_colour)
  2120.         # or the one closer to the C version:
  2121.         #  GtkPixmap(pixmap, mask)
  2122.         if _obj: self._o = _obj; return
  2123.         if type(xpm_or_mask) == type(''):
  2124.             pix, mask = create_pixmap_from_xpm(parent_or_pixmap,
  2125.                                bg, xpm_or_mask)
  2126.             self._o = _gtk.gtk_pixmap_new(pix, mask)
  2127.         else:
  2128.             self._o = _gtk.gtk_pixmap_new(parent_or_pixmap,
  2129.                               xpm_or_mask)
  2130.     def get(self):
  2131.         return _gtk.gtk_pixmap_get(self._o)
  2132.     def set(self, pixmap, mask):
  2133.         _gtk.gtk_pixmap_set(self._o, pixmap, mask)
  2134.     def set_build_insensitive(self, build):
  2135.         _gtk.gtk_pixmap_set_build_insensitive(self._o, build)
  2136.  
  2137. class GtkLabel(GtkMisc):
  2138.     get_type = _gtk.gtk_label_get_type
  2139.     def __init__(self, label="", _obj=None):
  2140.         if _obj: self._o = _obj; return
  2141.         self._o = _gtk.gtk_label_new(label)
  2142.     def set(self, str):
  2143.         print "GtkLabel.set deprecated -- use set_text"
  2144.         self.set_text(str)
  2145.     def set_text(self, str):
  2146.         _gtk.gtk_label_set_text(self._o, str)
  2147.     def set_justify(self, jtype):
  2148.         _gtk.gtk_label_set_justify(self._o, jtype)
  2149.     def set_line_wrap(self, wrap):
  2150.         _gtk.gtk_label_set_line_wrap(self._o, wrap)
  2151.     def set_pattern(self, pattern):
  2152.         _gtk.gtk_label_set_pattern(self._o, pattern)
  2153.     def get(self):
  2154.         return _gtk.gtk_label_get(self._o)
  2155.     def parse_uline(self, string):
  2156.         return _gtk.gtk_label_parse_uline(self._o, string)
  2157.  
  2158. class GtkAccelLabel(GtkLabel):
  2159.     get_type = _gtk.gtk_accel_label_get_type
  2160.     def __init__(self, string=None, _obj=None):
  2161.         if _obj: self._o = _obj; return
  2162.         self._o = _gtk.gtk_accel_label_new(string)
  2163.     def accelerator_width(self):
  2164.         print "accelerator_width deprecated -- use get_accel_width"
  2165.         return self.get_accel_width()
  2166.     def get_accel_width(self):
  2167.         return _gtk.gtk_accel_label_get_accel_width(self._o)
  2168.     def set_accel_widget(self, widget):
  2169.         _gtk.gtk_accel_label_set_accel_widget(self._o, widget._o)
  2170.     def refetch(self):
  2171.         _gtk.gtk_accel_label_refetch(self._o)
  2172.  
  2173. class GtkTipsQuery(GtkLabel):
  2174.     get_type = _gtk.gtk_tips_query_get_type
  2175.     def __init__(self, _obj=None):
  2176.         if _obj: self._o = _obj; return
  2177.         self._o = _gtk.gtk_tips_query_new()
  2178.     def start_query(self, obj=None):
  2179.         _gtk.gtk_tips_query_start_query(self._o)
  2180.     def stop_query(self, obj=None):
  2181.         _gtk.gtk_tips_query_stop_query(self._o)
  2182.     def set_caller(self, caller):
  2183.         _gtk.gtk_tips_query_set_caller(self._o, caller._o)
  2184.     def set_labels(self, inactive, no_tip):
  2185.         _gtk.gtk_tips_query_set_labels(self._o, inactive, no_tip)
  2186.  
  2187. class GtkPreview(GtkWidget):
  2188.     get_type = _gtk.gtk_preview_get_type
  2189.     def __init__(self, type=PREVIEW_COLOR, _obj=None):
  2190.         if _obj: self._o = _obj; return
  2191.         self._o = _gtk.gtk_preview_new(type)
  2192.     def size(self, w, h):
  2193.         _gtk.gtk_preview_size(self._o, w, h)
  2194.     def put(self, win, gc, srcx, srcy, dstx, dsty, width, height):
  2195.         _gtk.gtk_preview_put(self._o, win, gc, srcx, srcy,
  2196.                      dstx, dsty, width, height)
  2197.     def draw_row(self, data, x, y, w=None):
  2198.         _gtk.gtk_preview_draw_row(self._o, data, x, y, w or len(data))
  2199.     def set_expand(self, expand):
  2200.         _gtk.gtk_preview_set_expand(self._o, expand)
  2201.     def set_gamma(self, gamma):
  2202.         _gtk.gtk_preview_set_gamma(self._o, gamma)
  2203.     def set_color_cube(self, nr, ng, nb, ngrey):
  2204.         _gtk.gtk_preview_set_color_cube(self._o, nr,ng,nb, ngrey)
  2205.     def set_install_cmap(self, install):
  2206.         _gtk.gtk_preview_set_install_cmap(install)
  2207.     def set_reserved(self, reserved):
  2208.         _gtk.gtk_preview_set_reserved(reserved)
  2209.     def set_dither(self, dither):
  2210.         _gtk.gtk_preview_set_dither(self._o, dither)
  2211.  
  2212. class GtkProgress(GtkWidget):
  2213.     get_type = _gtk.gtk_progress_get_type
  2214.     def __init__(self, _obj=None):
  2215.         if _obj: self._o = _obj; return
  2216.     def set_show_text(self, show_text):
  2217.         _gtk.gtk_progress_set_show_text(self._o, show_text)
  2218.     def set_text_alignment(self, x_align, y_align):
  2219.         _gtk.gtk_progress_set_text_alignment(self._o, x_align,
  2220.                              y_align)
  2221.     def set_format_string(self, format):
  2222.         _gtk.gtk_progress_set_format_string(self._o, format)
  2223.     def set_adjustment(self, adj):
  2224.         _gtk.gtk_progress_set_adjustment(self._o, adj._o)
  2225.     def reconfigure(self, value, min, max):
  2226.         print "reconfigure deprecated -- use configure"
  2227.         self.configure(value, min, max)
  2228.     def configure(self, value, min, max):
  2229.         _gtk.gtk_progress_configure(self._o, value, min, max)
  2230.     def set_percentage(self, pcnt):
  2231.         _gtk.gtk_progress_set_percentage(self._o, pcnt)
  2232.     def set_value(self, value):
  2233.         _gtk.gtk_progress_set_value(self._o, value)
  2234.     def get_value(self):
  2235.         return _gtk.gtk_progress_get_value(self._o)
  2236.     def set_activity_mode(self, activity_mode):
  2237.         _gtk.gtk_progress_set_activity_mode(self._o, activity_mode)
  2238.     def get_current_text(self):
  2239.         return _gtk.gtk_progress_get_current_text(self._o)
  2240.     def get_text_from_value(self, value):
  2241.         return _gtk.gtk_progress_get_text_from_value(self._o, value)
  2242.     def get_current_percentage(self):
  2243.         return _gtk.gtk_progress_get_current_percentage(self._o)
  2244.     def get_percentage_from_value(self, value):
  2245.         return _gtk.gtk_progress_get_percentage_from_value(self._o,
  2246.                                    value)
  2247.  
  2248. class GtkProgressBar(GtkProgress):
  2249.     get_type = _gtk.gtk_progress_bar_get_type
  2250.     def __init__(self, adjustment=None, _obj=None):
  2251.         if _obj: self._o = _obj; return
  2252.         if adjustment:
  2253.             self._o = _gtk.gtk_progress_bar_new_with_adjustment(
  2254.                 adjustment._o)
  2255.         else:
  2256.             self._o = _gtk.gtk_progress_bar_new()
  2257.     def set_bar_style(self, style):
  2258.         _gtk.gtk_progress_bar_set_bar_style(self._o, style)
  2259.     def set_discrete_blocks(self, blocks):
  2260.         _gtk.gtk_progress_bar_set_discrete_blocks(self._o, blocks)
  2261.     def set_activity_step(self, step):
  2262.         _gtk.gtk_progress_bar_set_activity_step(self._o, step)
  2263.     def set_activity_blocks(self, blocks):
  2264.         _gtk.gtk_progress_bar_set_activity_blocks(self._o, blocks)
  2265.     def set_orientation(self, orient):
  2266.         _gtk.gtk_progress_bar_set_orientation(self._o, orient)
  2267.     def update(self, pcnt):
  2268.         _gtk.gtk_progress_bar_update(self._o, pcnt)
  2269.  
  2270. class GtkRange(GtkWidget):
  2271.     get_type = _gtk.gtk_range_get_type
  2272.     def __init__(self, _obj=None):
  2273.         if _obj: self._o = _obj; return
  2274.     def get_adjustment(self):
  2275.         return _obj2inst(_gtk.gtk_range_get_adjustment(self._o))
  2276.     def set_update_policy(self, pol):
  2277.         _gtk.gtk_range_set_update_policy(self._o, pol)
  2278.     def set_adjustment(self, adj):
  2279.         _gtk.gtk_range_set_adjustment(self._o, adj._o)
  2280.     def draw_background(self, obj=None):
  2281.         _gtk.gtk_range_draw_background(self._o)
  2282.     def clear_background(self, _obj=None):
  2283.         _gtk.gtk_range_clear_background(self._o)
  2284.     def draw_trough(self, obj=None):
  2285.         _gtk.gtk_range_draw_trough(self._o)
  2286.     def draw_step_forw(self, obj=None):
  2287.         _gtk.gtk_range_draw_step_forw(self._o)
  2288.     def draw_step_back(self, obj=None):
  2289.         _gtk.gtk_range_draw_step_back(self._o)
  2290.  
  2291. class GtkScale(GtkRange):
  2292.     get_type = _gtk.gtk_scale_get_type
  2293.     def __init__(self, _obj=None):
  2294.         if _obj: self._o = _obj; return
  2295.     def set_digits(self, digits):
  2296.         _gtk.gtk_scale_set_digits(self._o, digits)
  2297.     def set_draw_value(self, draw_value):
  2298.         _gtk.gtk_scale_set_draw_value(self._o, draw_value)
  2299.     def set_value_pos(self, pos):
  2300.         _gtk.gtk_scale_set_value_pos(self._o, pos)
  2301.     def value_width(self):
  2302.         print "value_width deprecated -- use get_value_width"
  2303.         return self.get_value_width()
  2304.     def get_value_width(self):
  2305.         return _gtk.gtk_scale_get_value_width(self._o)
  2306.     def draw_value(self, obj=None):
  2307.         _gtk.gtk_scale_draw_value(self._o)
  2308.  
  2309. class GtkHScale(GtkScale):
  2310.     get_type = _gtk.gtk_hscale_get_type
  2311.     def __init__(self, adj=None, _obj=None):
  2312.         if _obj: self._o = _obj; return
  2313.         if adj: adj = adj._o
  2314.         self._o = _gtk.gtk_hscale_new(adj)
  2315.  
  2316. class GtkVScale(GtkScale):
  2317.     get_type = _gtk.gtk_vscale_get_type
  2318.     def __init__(self, adj=None, _obj=None):
  2319.         if _obj: self._o = _obj; return
  2320.         if adj: adj = adj._o
  2321.         self._o = _gtk.gtk_vscale_new(adj)
  2322.  
  2323. class GtkScrollbar(GtkRange):
  2324.     get_type = _gtk.gtk_scrollbar_get_type
  2325.     def __init__(self, _obj=None):
  2326.         if _obj: self._o = _obj; return
  2327.  
  2328. class GtkHScrollbar(GtkScrollbar):
  2329.     get_type = _gtk.gtk_hscrollbar_get_type
  2330.     def __init__(self, adj=None, _obj=None):
  2331.         if _obj: self._o = _obj; return
  2332.         if adj: adj = adj._o
  2333.         self._o = _gtk.gtk_hscrollbar_new(adj)
  2334.  
  2335. class GtkVScrollbar(GtkScrollbar):
  2336.     get_type = _gtk.gtk_vscrollbar_get_type
  2337.     def __init__(self, adj=None, _obj=None):
  2338.         if _obj: self._o = _obj; return
  2339.         if adj: adj = adj._o
  2340.         self._o = _gtk.gtk_vscrollbar_new(adj)
  2341.  
  2342. class GtkRuler(GtkWidget):
  2343.     get_type = _gtk.gtk_ruler_get_type
  2344.     def __init__(self, _obj=None):
  2345.         if _obj: self._o = _obj; return
  2346.     def set_metric(self, metric):
  2347.         _gtk.gtk_ruler_set_metric(self._o, metric)
  2348.     def set_range(self, lo, up, pos, max):
  2349.         _gtk.gtk_ruler_set_range(self._o, lo, up, pos, max)
  2350.     def draw_ticks(self, obj=None):
  2351.         _gtk.gtk_ruler_draw_ticks(self._o)
  2352.     def draw_pos(self, obj=None):
  2353.         _gtk.gtk_ruler_draw_pos(self._o)
  2354.  
  2355. class GtkHRuler(GtkRuler):
  2356.     get_type = _gtk.gtk_hruler_get_type
  2357.     def __init__(self, _obj=None):
  2358.         if _obj: self._o = _obj; return
  2359.         self._o = _gtk.gtk_hruler_new()
  2360.  
  2361. class GtkVRuler(GtkRuler):
  2362.     get_type = _gtk.gtk_vruler_get_type
  2363.     def __init__(self, _obj=None):
  2364.         if _obj: self._o = _obj; return
  2365.         self._o = _gtk.gtk_vruler_new()
  2366.  
  2367. class GtkSeparator(GtkWidget):
  2368.     get_type = _gtk.gtk_separator_get_type
  2369.     def __init__(self, _obj=None):
  2370.         if _obj: self._o = _obj; return
  2371.  
  2372. class GtkHSeparator(GtkSeparator):
  2373.     get_type = _gtk.gtk_hseparator_get_type
  2374.     def __init__(self, _obj=None):
  2375.         if _obj: self._o = _obj; return
  2376.         self._o = _gtk.gtk_hseparator_new()
  2377.  
  2378. class GtkVSeparator(GtkSeparator):
  2379.     get_type = _gtk.gtk_vseparator_get_type
  2380.     def __init__(self, _obj=None):
  2381.         if _obj: self._o = _obj; return
  2382.         self._o = _gtk.gtk_vseparator_new()
  2383.  
  2384.  
  2385. _name2cls = {}
  2386. _supported = map(lambda x: eval(x), filter(lambda x: x[:3] == 'Gtk', dir()))
  2387. for m in _supported:
  2388.     _name2cls[m.__name__] = m
  2389. del m
  2390.  
  2391. class GtkAccelGroup:
  2392.     def __init__(self, _obj=None):
  2393.         if _obj: self._ag = _obj; return
  2394.         self._ag = _gtk.gtk_accel_group_new()
  2395.     def activate(self, key, mods):
  2396.         _gtk.gtk_accel_group_activate(self._ag, key, mods)
  2397.     def attach(self, obj):
  2398.         _gtk.gtk_accel_group_attach(self._ag, obj._o)
  2399.     def detach(self, obj):
  2400.         _gtk.gtk_accel_group_detach(self._ag, obj._o)
  2401.     def lock(self):
  2402.         _gtk.gtk_accel_group_lock(self._ag)
  2403.     def unlock(self):
  2404.         _gtk.gtk_accel_group_unlock(self._ag)
  2405.     def lock_entry(self, key, mods):
  2406.         _gtk.gtk_accel_group_lock_entry(self._ag, key, mods)
  2407.     def unlock_entry(self, key, mods):
  2408.         _gtk.gtk_accel_group_unlock_entry(self._ag, key, mods)
  2409.     def add(self, key, mods, flags, obj, signal):
  2410.         _gtk.gtk_accel_group_add(self._ag, key, mods, flags,
  2411.                      obj._o, signal)
  2412.     def remove(self, key, mods, obj):
  2413.         _gtk.gtk_accel_group_remove(self._ag, key, mods, obj._o)
  2414.  
  2415. def _obj2inst(obj):
  2416.     objname = _gtk.gtk_type_name(_gtk.GTK_OBJECT_TYPE(obj))
  2417.     if _name2cls.has_key(objname):
  2418.         return _name2cls[objname](_obj=obj)
  2419.     # if I don't know what the object is, guess
  2420.     elif _gtk.GTK_CHECK_TYPE(obj, GtkBox.get_type()):
  2421.         return GtkBox(_obj=obj)
  2422.     elif _gtk.GTK_CHECK_TYPE(obj, GtkBin.get_type()):
  2423.         return GtkBin(_obj=obj)
  2424.     elif _gtk.GTK_CHECK_TYPE(obj, GtkWindow.get_type()):
  2425.         return GtkWindow(_obj=obj)
  2426.     elif _gtk.GTK_CHECK_TYPE(obj, GtkContainer.get_type()):
  2427.         return GtkContainer(_obj=obj)
  2428.     elif _gtk.GTK_CHECK_TYPE(obj, GtkWidget.get_type()):
  2429.         return GtkWidget(_obj=obj)
  2430.     else:
  2431.         return GtkObject(_obj=obj)
  2432.  
  2433. def _filtprops(props):
  2434.     for k in props.keys():
  2435.         v = props[k]
  2436.         if hasattr(v, '_o') and type(v._o) == _gtk.GtkObjectType:
  2437.             props[k] = v._o
  2438.  
  2439. def new(tp, **props):
  2440.     if type(tp) == type(GtkObject):
  2441.         tp = tp.get_type()
  2442.     elif type(tp) == type('forty-two'): 
  2443.         tp = _name2cls[tp].get_type()
  2444.     elif type(tp) != type(0):
  2445.         raise TypeError, "unknow type argument: " + tp
  2446.     _filtprops(props)
  2447.     return _obj2inst(_gtk.gtk_object_new(tp, props))
  2448.  
  2449. # flow control
  2450. def mainloop():
  2451.     _gtk.gtk_main()
  2452. def mainquit(*args):
  2453.     _gtk.gtk_main_quit()
  2454. def mainiteration(block=TRUE):
  2455.     return _gtk.gtk_main_iteration(block)
  2456. def events_pending():
  2457.     return _gtk.gtk_events_pending()
  2458.  
  2459. # idle/quit/timeout handlers
  2460. def idle_add(callback):
  2461.     return _gtk.gtk_idle_add(callback)
  2462. def idle_add_priority(priority, callback):
  2463.     return _gtk.gtk_idle_add_priority(priority, callback)
  2464. def idle_remove(tag):
  2465.     _gtk.gtk_idle_remove(tag)
  2466. def quit_add(mainlevel, callback):
  2467.         return _gtk.gtk_quit_add(mainlevel, callback)
  2468. def quit_add_destroy(mainlevel, object):
  2469.     _gtk.gtk_quit_add_destroy(mainlevel, object._o)
  2470. def quit_remove(tag):
  2471.     _gtk.gtk_quit_remove(tag)
  2472. def timeout_add(timeout, callback):
  2473.     return _gtk.gtk_timeout_add(timeout, callback)
  2474. def timeout_remove(tag):
  2475.     _gtk.gtk_timeout_remove(tag)
  2476.  
  2477. # input (file handle) handler
  2478. def input_add(source, condition, callback):
  2479.     if hasattr(source, 'fileno'):
  2480.         # handle python file handles
  2481.         def wrapper(source, condition, real_s=source,real_cb=callback):
  2482.             real_cb(real_s, condition)
  2483.         return _gtk.gtk_input_add(source.fileno(), condition, wrapper)
  2484.     else:
  2485.         return _gtk.gtk_input_add(source, condition, callback)
  2486. def input_remove(tag):
  2487.     _gtk.gtk_input_remove(tag)
  2488.  
  2489. # these functions govern modality
  2490. def grab_add(wid):
  2491.     _gtk.gtk_grab_add(wid._o)
  2492. def grab_remove(wid):
  2493.     _gtk.gtk_grab_remove(wid._o)
  2494. def grab_get_current():
  2495.     return _obj2inst(_gtk.gtk_grab_get_current())
  2496.  
  2497. # RC parsing
  2498. def rc_parse(fname):
  2499.     _gtk.gtk_rc_parse(fname)
  2500. def rc_parse_string(string):
  2501.     _gtk.gtk_rc_parse_string(string)
  2502. def rc_reparse_all():
  2503.     _gtk.gtk_rc_repase_all()
  2504.  
  2505. # font loading
  2506. def load_font(font):
  2507.     return _gtk.gdk_font_load(font)
  2508. def load_fontset(fontset):
  2509.     return _gtk.gdk_fontset_load(fontset)
  2510.  
  2511. # cursor loading
  2512. def cursor_new(type):
  2513.     return _gtk.gdk_cursor_new(type)
  2514. def cursor_new_from_pixmap(source, mask, fg, bg, x, y):
  2515.     return _gtk.gdk_cursor_new_from_pixmap(source, mask, fg, bg, x, y)
  2516.  
  2517. # colour allocation
  2518. def colour_alloc(parent, red, green=None, blue=None):
  2519.     print "colour_alloc deprecated.  Use GdkColormap.alloc"
  2520.     if hasattr(parent, '_o'): cmap = parent.get_window().colormap
  2521.     elif hasattr(parent, 'colormap'): cmap = parent.colormap
  2522.     else: cmap = parent
  2523.     if type(red) == type(''):
  2524.         return cmap.alloc(red)
  2525.     # red assumed to be an int
  2526.     if green == None and blue == None:
  2527.         green, blue = divmod(red, 256)
  2528.         red, green  = divmod(green, 256)
  2529.         red = red % 256
  2530.  
  2531.         red   = (red   + 1) * 256 - 1
  2532.         green = (green + 1) * 256 - 1
  2533.         blue  = (blue  + 1) * 256 - 1
  2534.     return cmap.alloc(red, green, blue)
  2535. # This one's for the Americans...
  2536. color_alloc = colour_alloc
  2537.  
  2538. # atoms ...
  2539. def atom_intern(name, only_if_exists=FALSE):
  2540.     return _gtk.gdk_atom_intern(name, only_if_exists)
  2541. def atom_name(atom):
  2542.     return _gtk.gdk_atom_name(atom)
  2543.  
  2544. # pixmap loading
  2545. def create_pixmap_from_xpm(object, bg, xpm):
  2546.     if type(object) == _gtk.GdkWindowType:
  2547.         return _gtk.gdk_pixmap_create_from_xpm(object, bg, xpm)
  2548.     else:
  2549.         if hasattr(object, 'get_colormap'):
  2550.             cmap = object.get_colormap()
  2551.         elif hasattr(object, 'colormap'):
  2552.             cmap = object.colormap
  2553.         else:
  2554.             cmap = object
  2555.         return _gtk.gdk_pixmap_colormap_create_from_xpm(None, cmap,
  2556.                                 bg, xpm)
  2557. # use XPM data ...
  2558. def create_pixmap_from_xpm_d(object, bg, xpm_d):
  2559.     if type(object) == _gtk.GdkWindowType:
  2560.         return _gtk.gdk_pixmap_create_from_xpm_d(object, bg, xpm_d)
  2561.     else:
  2562.         if hasattr(object, 'get_colormap'):
  2563.             cmap = object.get_colormap()
  2564.         elif hasattr(object, 'colormap'):
  2565.             cmap = object.colormap
  2566.         else:
  2567.             cmap = object
  2568.         return _gtk.gdk_pixmap_colormap_create_from_xpm_d(None, cmap,
  2569.                                   bg, xpm_d)
  2570. def create_pixmap(window, width, height, depth=-1):
  2571.     if (hasattr(window, '_o')):
  2572.             window.realize()
  2573.         window = window.get_window()
  2574.     return _gtk.gdk_pixmap_new(window, width, height, depth)
  2575.  
  2576. def create_bitmap_from_data(window, data, width, height):
  2577.     return _gtk.gdk_bitmap_create_from_data(window, data, width, height)
  2578.  
  2579. # drawing functions...
  2580. def draw_point(drawable, gc, x, y):
  2581.     _gtk.gdk_draw_point(drawable, gc, x, y)
  2582. def draw_line(drawable, gc, x1, y1, x2, y2):
  2583.     _gtk.gdk_draw_line(drawable, gc, x1, y1, x2, y2)
  2584. def draw_rectangle(drawable, gc, fill, x, y, width, height):
  2585.     _gtk.gdk_draw_rectangle(drawable, gc, fill, x, y,
  2586.                 width, height)
  2587. def draw_arc(drawable, gc, fill, x, y, width, height, angle1, angle2):
  2588.     _gtk.gdk_draw_arc(drawable, gc, fill, x, y, width, height, angle1,
  2589.               angle2)
  2590. def draw_polygon(drawable, gc, fill, points):
  2591.     _gtk.gdk_draw_polygon(drawable, gc, fill, points)
  2592. def draw_string(drawable, font, gc, x, y, string):
  2593.     _gtk.gdk_draw_string(drawable, font, gc, x, y, string)
  2594. def draw_text(drawable, font, gc, x, y, text):
  2595.     _gtk.gdk_draw_text(drawable, font, gc, x, y, text)
  2596. def draw_pixmap(drawable, gc, src, xsrc,ysrc, xdest,ydest, width,height):
  2597.     _gtk.gdk_draw_pixmap(drawable, gc, src, xsrc,ysrc,
  2598.                  xdest,ydest, width,height)
  2599. def draw_points(drawable, gc, points):
  2600.     _gtk.gdk_draw_points(drawable, gc, points)
  2601. def draw_segments(drawable, gc, segs):
  2602.     _gtk.gdk_draw_segments(drawable, gc, segs)
  2603. def draw_lines(drawable, gc, points):
  2604.     _gtk.gdk_draw_lines(drawable, gc, points)
  2605.  
  2606.  
  2607. # screen size
  2608. def screen_width():
  2609.     return _gtk.gdk_screen_width()
  2610. def screen_height():
  2611.     return _gtk.gdk_screen_height()
  2612.  
  2613. def screen_width_mm():
  2614.     return _gtk.gdk_screen_width_mm()
  2615. def screen_height_mm():
  2616.     return _gtk.gdk_screen_height_mm()
  2617.  
  2618. # thread support -- place calls to these arround gtk code in threads ...
  2619. def threads_enter():
  2620.     _gtk.gdk_threads_enter()
  2621. def threads_leave():
  2622.     _gtk.gdk_threads_leave()
  2623.